我有三份文件:
{ "_id" : ObjectId("5265da546efdfb25e06ea009"), "a" : 1, "b" : 1 }
{ "_id" : ObjectId("5265daadc01c42c8f4974711"), "a" : 2, "b" : 2 }
{ "_id" : ObjectId("5265dab3c01c42c8f4974712"), "a" : 3, "b" : 3 }
我正在尝试查找所有文档,其中a和某些给定值。
e.g. FIND all documents
WHERE
a=123 and b=456
OR a=789 and b=888
我试过这个,这不起作用:
db.test.find({$中:[{"":2" B":2},{"":1, " b":2}]})
很可能这种语法错了,因为我这里没有提到任何字段。
如何使用$ in查询所有这些文件?
如果a和b包含在另一个字段中,例如下面的字段,这将是一个简单的问题:
{ "_id" : ObjectId("5265dbfcc01c42c8f4974713"), "t" : { "a" : 2, "b" : 2 } }
{ "_id" : ObjectId("5265dc02c01c42c8f4974714"), "t" : { "a" : 1, "b" : 1 } }
{ "_id" : ObjectId("5265dc07c01c42c8f4974715"), "t" : { "a" : 3, "b" : 3 } }
db.test.find({t:{$in:[{"a":1,"b":1},{"a":2,"b":2}]}});
{ "_id" : ObjectId("5265dbfcc01c42c8f4974713"), "t" : { "a" : 2, "b" : 2 } }
{ "_id" : ObjectId("5265dc02c01c42c8f4974714"), "t" : { "a" : 1, "b" : 1 } }
我不确定如何说出来,但也许我正在寻找一种方法将“' $”应用到根级文档中。
我错过了一些明显的东西,或者mongodb没有提供查询' $ in'在根级?
答案 0 :(得分:2)
简单$or
是否有问题?
db.test.find({$or: [{"a": 1, "b": 1}, {"a" :2, "b": 2}]})
Mongo $in
语法如下所示:
{ field: { $in: [<value1>, <value2>, ... <valueN> ] } }
在您的情况下,没有要使用的字段。