我的任务是通过给定的 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 表达式。