MongoDb文档有以下模式。我想只显示带有标记的项目"显示"设为true。
{
id: 123,
properties : [
{name : "Name", value: "Value"},
{name : "Description", value: "A description of the item"},
{name : "Display", value: true}
]
}
我无法弄清楚如何在MongoDB中执行此操作。任何帮助将不胜感激。
答案 0 :(得分:1)
要匹配完整的数组项,您需要使用$elemMatch运算符。
db.col.find({properties : {$elemMatch : {name : "Display", value : true}}});
这样,只会返回一个文档项目同时匹配所有条件的文档。
查询
db.col.find({"properties.name" : "Display", "properties.value" : true});
将匹配数组项中的任何组合。
例如,在这种情况下也会返回以下文档:
{
id: 123,
properties : [
{name : "Name", value: "Value"},
{name : "Description", value: "A description of the item"},
{name : "Display", value: false},
{name : "AnotherOne", value: true}
]
}