我在MongoDB中有这个文档,其结构存储在结果字段
中[
{
"id" : "131429",
"categoryId" : "3",
"results" : [{
"id" : "yAHPPvo",
"supplierId" : 31,
"countryId" : "91",
"cityId" : "91",
}, {
"id" : "BAYYESB",
"supplierId" : 31,
"countryId" : "91",
"cityId" : "91",
}]
},
{
"id" : "22534",
"categoryId" : "2",
"results" : [{
"id" : "DerrDSQ",
"supplierId" : 14,
"countryId" : "91",
"cityId" : "91",
}, {
"id" : "TTerySQ",
"supplierId" : 5,
"countryId" : "91",
"cityId" : "91",
}]
}
]
试图弄清楚如何使用“yAHPPvo”键查询和提取对象,找到第一部分找到必要的文档,但是如何在其中提取子对象呢? 我在网上看到这是通过聚合功能和展开来完成的,但似乎无法用手指对它进行操作。如果它变得更容易,我可以将它转换为数组,但是两个都没有成功。
更新
这是我迄今为止尝试过的重复链接建议:
db.getCollection('searches').aggregate([
{$match: {'result.id': '131429'}},
{$project: {
result: {$filter: {
input: '$result',
as: 'result',
cond: {$eq: ['$$result.id', 'yAHPPvo']}
}},
_id: 0
}}
])
但返回0条记录。