MongoDB同时查询嵌套文档字段

时间:2016-09-19 16:26:24

标签: mongodb nested-documents

将文档置于集合test中,如下所示:

{a:2, list:[{lang:"en", value:"Mother"}, {lang:"de", value:"Mutter"}] }

当我查询时:

db.test.find({"list.lang":"de", "list.value": "Mother" })

我希望什么都得不到,但理由是存在包含两个满足总条件的嵌套条目的文档,MongoDB会解析{a:2}

如何修复查询以仅检索两个内部字段同时满足指定条件的文档?

1 个答案:

答案 0 :(得分:4)

使用$elemMatch

db.test.find({ "list": { "$elemMatch": {"lang":"de", "value": "Mother" } } })

使用$all

db.test.find({ "list": { "$all": [{"lang":"de", "value": "Mother" }] } })