【发布时间】:2019-09-18 14:10:21
【问题描述】:
我想找出 type="Normal" 和 desc==atr.value(特定键 atr.key="UDPP" 的 atr.value)的元素。我使用的是 mongo 3.0.4,所以不能使用 $expr。下面是数据集:
JSON
"_id":ObjectId("12345"),
"desc":"Foo Bar",
"type":"Normal",
"atr":[
{
"key":"DSP",
"value":"Goo Bar"
},
{
"key":"UDSP",
"value":"Foo Bar"
}
],
"prod":"yes"
}
{
"_id":ObjectId("12347"),
"desc":"Boo Bar",
"type":"Normal",
"atr":[
{
"key":"DSP",
"value":"Goo Bar"
},
{
"key":"UDSP",
"value":"Foo Bar"
}
],
"prod":"yes"
}
它应该将结果作为 Ist 对象仅作为 type="Normal" 和 atr.value="Foo Bar"(for atr.key="UDSP") 和 desc="Foo Bar"
【问题讨论】:
-
我试过这个查询不起作用:
db.test.aggregate([ { $unwind:"$atr" }, { "$match":{ "atr.key":"UDSP" } }, { "$redact":{ "$cond":{ if:{ "$eq":[ "atr.value", "desc" ] }, then:"$$KEEP", else:"$$PRUNE" } } } ])
标签: mongodb mongodb-query aggregation-framework