查询Mongoose中的所有数组匹配

时间:2015-09-25 18:12:17

标签: node.js mongodb mongoose

我有一种感觉,这可能是在其他地方被问过,但我很难找到答案。

基本上,我有一个MongoDB / Mongoose Schema,它存储一个注册用户列表。我正在构建一个GUI,可以查询满足特定条件的所有记录。在这种情况下,我想让GUI用户通过复选框选择他们想要包含在查询中的所有性别。

如果我只是传入一个字符串,我知道我会写如下:

    User.find({"gender": gender}).exec(function(err, users){
        if(err)
          res.send(err);
        res.json(users);
    });

但是因为我可能会传递一个选项数组,是否有一个本机Mongoose函数可用于查询以下情况?

[Male]
[Male, Female, Other]
[Male, Other]
[Female]
etc.

在Mongoose中编写此查询的最佳方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:6)

您应该使用$in运算符

  var gender = [Male, Female, Other]
  User.find({"gender": {$in: gender}})