私の仕事は、与えられたIDのリストによってテーブルdeviceTokensからクエリを実行することです。clientDevicesそして、そのクライアントにプッシュ通知を送信します。
次のデータをpushRequestsテーブルに挿入して、IDのリストを取得しています。
{
"alert": "Hello customer!",
"badge": 1,
"recipients": [2, 4, 5]
}
そして、私はこのサーバー側の挿入関数を書きました:
function insert(item, user, request) {
if (item.recipients) {
tables.getTable('clientDevices').where(function(ids) {
return (ids.indexOf(this.id) > -1)
}, item.recipients).read({
success: function(results) {
// . . .
// Send push notifications to this guys
// . . .
}
})
item.recipients = JSON.stringify(item.recipients)
}
request.execute()
}
しかし、奇妙なエラーが発生します。
Error in script '/table/pushRequests.insert.js'. Error: The expression 'ids.indexOf(this.id)'' is not supported.
関数がサポートされていない場合indexOf、「フィールドIN配列」スタイルのフィルターを作成するにはどうすればよいですか?配列をmssql.query(sql, params, options)クエリパラメータとしてに渡すことはできますか?
PS:指定された配列からwhere式を手動で作成したくないのですが。