gpt4 book ai didi

mongodb - Mongo 查询查找与特定数组键值匹配的字段

转载 作者:行者123 更新时间:2023-12-03 15:59:33 26 4
gpt4 key购买 nike

我想找出 type="Normal"且 desc==atr.value 的元素(特定键 atr.key="UDSP"的 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"(对于 atr.key="UDSP")和 desc="Foo Bar"

最佳答案

您可以使用此查询。首先根据条件为匹配文档添加一个字段,并根据添加的字段进行过滤

db.test.aggregate([ 
{ $match: { type: "Normal", "atr.key":"UDSP" }},
{ $addFields:{
isDocMatched: {
$anyElementTrue: {
$map:{
input: "$atr",
as: "grade",
in: { $eq: [ "$$grade.value", "$desc" ] }
}
}
}
}},
{ $match: { isDocMatched: true } }
])

关于mongodb - Mongo 查询查找与特定数组键值匹配的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57994771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com