我的搜索结果以以下格式存储在Mongo集合中。这是一个文件。
{
"result": [
{
"provider_id": 1,
"code" :1,
"comm_id" : 1
},
{
"provider_id": 1,
"code" :2,
"comm_id" : 2
},
{
"provider_id": 2,
"code" :"A",
"comm_id" : 1
},
{
"provider_id": 1,
"code" :"B",
"comm_id" : 3
}
]
}
如何编写查询并应用类似{“ result.comm_id”:1}的过滤器,以使结果集具有
{
"result":[
{
"provider_id": 1,
"code" :1,
"comm_id" : 1
},
{
"provider_id": 2,
"code" :"A",
"comm_id" : 1
}
]
}
答案 0 :(得分:2)
使用$ filter如下使用聚合管道
db.collection.aggregate([
{
$project: {
result: {
$filter: {
input: "$result",
as: "item",
cond: {
$eq: [
"$$item.comm_id",
1
]
}
}
}
}
}
])