私の仕事は、与えられた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式を手動で作成したくないのですが。