在我的web服务中,我传递的是字符串数组,然后我就像这样解析它:
var users = req.body.users;
if (users) {
var user = users.split(',');
query.$and.push({"device_id": {$nin: user}});
}
但是现在我的要求发生了变化而不是字符串我正在传递这样的数组:
"users": (
{
"device_id" = "XXX";
"display_name" = XXX;
"facebook_username" = XXX;
username = XXX;
},
{
"device_id" = "YYY";
"display_name" = YYY;
"facebook_username" = YYY;
username = YYY;
}
)
像之前一样 - 我想过滤掉包含给定device_ids的所有记录。如何修改我的代码,使其迭代数组(并考虑特定字段)而不是字符串?
答案 0 :(得分:1)
假设var users = req.body.users;
var excludedDeviceIds = [ ];
for(var i in users) {
excludedDeviceIds.push(users[i]['device_id']);
}
query.$and.push({ 'device_id': { $nin: excludedDeviceIds } });
是一个数组,请尝试以下方法:
query.$and.push({
'device_id': {
$nin: users.map(user => user['device_id'])
}
});
修改强>
如果您的环境支持ES6,您还可以尝试:
cw-app