根据值数组查找多个对象

时间:2018-01-07 21:02:25

标签: node.js mongodb mongoose

给定一个带有User字段的模型username有没有办法选择数组中具有用户名的所有用户?我可以像这样使用for循环遍历所有用户名:

var usernamesToFind = ["username", "anotherUsername", "etc"];
for (i = 0; i < usernameToFind.length; i++) {
    User.find({ "username": usernamesToFind[i] }, function(err, foundUser) {
        //notify user they got tagged
    });
}

是否有可能通过一个查询实现上述循环的结果,而不是按用户名获取用户名,我会进行一次查询并获取用户名与任何给定用户名匹配的用户列表?

1 个答案:

答案 0 :(得分:1)

您可以使用$in operator进行查询,其中包含:

  

[...]选择字段值等于指定数组中任何值的文档。

User.find({ username: { $in: usernamesToFind } }, function(err, foundUser) {
  //...
});