如何解析node.js和mongodb查询中的对象数组?

时间:2016-12-09 19:46:54

标签: javascript node.js mongodb

在我的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的所有记录。如何修改我的代码,使其迭代数组(并考虑特定字段)而不是字符串?

1 个答案:

答案 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