这可能非常基本,但我不知道该怎么做。
我想查询集合中是否key == value1 'OR' key == value2。
现在,值列表很长。所以虽然
db.collection.find({
"$or": [{
"key": "value1"
}, {
"key": "value2"
}]
});
可以工作,但我想传递一个值列表。
MongoDB 中是否有任何语法允许我这样做?我会使用 Mongoid,所以如果 Mongoid 中存在这样的东西,那就太好了。
最佳答案
您似乎想要 $in
逻辑上等价的运算符:
db.collection.find({ "key": { "$in": [ "value1", "value2" ] } });
这实际上是一个$or
因为同一字段的任何指定值都将匹配。您应该只需要$or
将不同条件与同一字段或其他字段进行比较时的运算符。但对于相等匹配,这是简写。
使用 Mongoid,您可以通过深入 Moped 层来使用相同的语法,其访问器恰好是“集合”:
Class.collection.find({ "key": { "$in": [ "value1", "value2" ] } });
关于MongoDB查询: Find where key's value from list of values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24140504/