Mongoose,如何使用两个或更多参数进行find()

时间:2015-08-18 11:44:12

标签: node.js mongodb express mongoose

我有这样的例子:

  

http://host.com/entries?users[0]=steve&users[1]=edward

此查询应仅向我提供具有此类名称的用户

我已经做了这样的代码

exports.find = (req, res, next) ->
  e = req.query.entries

  if hosts
    e = ({$or: [{entry}]} for entry in e)

    Collection.find {active: true}
    $and: e
    .exec (err, results) ->
      console.log results
      res.json results

但它返回我的空列表 我怎么能以正确的方式使用猫鼬?

1 个答案:

答案 0 :(得分:1)

您可以使用 $ in 运算符从数组中搜索。

示例:您有一组名称,如var names = ['Foo', 'Bar', 'Baz' ]

分辨率:

<强>回调

var searchQuery = {name: {$in: names}};
UserModel.find(searchQuery, function(err, foundUsers){
  if(err){
    //do something with err
  } else {
    //do something with foundUsers
  }
});

<强>无极

var searchQuery = {name: {$in: names}};
UserModel
  .find(searchQuery)
  .exec()
  .then(function(foundUsers){
    //do something with foundUsers
  })
  .onReject(function(err){
    //do something with err
  });

对于查询中的参数,您可以根据需要添加它们,就像在JSON对象中添加新键一样:

var searchQuery = {
  'foo': 'bar',
  'baz': 'qux'
};