MongoDB查询:从值列表中查找键值的位置

时间:2014-06-10 12:01:58

标签: mongodb mongoid mongodb-query

这可能是非常基本的,但我无法弄清楚如何去做。

我想查询key == value1' OR' key == value2 in the collection。

现在,值列表很长。所以虽然

db.collection.find({
  "$or": [{
    "key": "value1"
  }, {
    "key": "value2"
  }]
});

会起作用,但我想传递一个值列表。

MongoDB中是否有允许我这样做的语法?我会使用Mongoid,所以如果Mongoid中存在这样的东西,那就太好了。

1 个答案:

答案 0 :(得分:3)

您似乎想要$in运算符,它是逻辑等价的:

db.collection.find({ "key": { "$in": [ "value1", "value2" ] } });

这实际上是$or,因为该相同字段的任何指定值都将匹配。在将不同条件与同一字段或其他字段进行比较时,您应该只需要$or运算符。但对于平等比赛,这是速记。

使用Mongoid,您可以通过深入了解Moped图层来使用相同的语法,其访问者恰好是"集合":

Class.collection.find({ "key": { "$in": [ "value1", "value2" ] } });