假设我有一个这样的Collection :
{ "arr" : [ { "name" : "a", "num" : 1 }, { "name" : "a", "num" : 2 } ] },
{ "arr" : [ { "name" : "b", "num" : 1 }, { "name" : "a", "num" : 2 } ] },
{ "arr" : [ { "name" : "b", "num" : 1 }, { "name" : "b", "num" : 2 } ] }
我想找到所有arr
岁的文档,其中包含一个name
="b"和num
=2的子文档.
如果我做这样的查询:
db.collection.find({
$and: [
{ "arr.name": "b" },
{ "arr.num": 2 }
]
});
它将返回集合中的所有文档,因 for each 文档都包含一个子文档,该子文档的"b"值为name
,或"2"值为num
.
我也试过:
db.collection.find({
arr: [
{ "name": "b", "num": 2 }
]
});
它不会抛出任何错误,但不会返回任何结果.
如何在MongoDB中查询多个子文档字段?