【发布时间】:2021-12-23 02:36:21
【问题描述】:
我对猫鼬很陌生,我想知道是否可以根据孙子属性进行过滤。我到处寻找,但我无法根据我正在尝试做的事情找到类似的问题。这是场景:
想象一下我有一个这样的数据库:
db={
"parents": [
{
"_id": ObjectId("5a834e000102030405000000"),
"child": ObjectId("5a934e000102030405000000")
},
{
"_id": ObjectId("5a834e000102030405000001"),
"child": ObjectId("5a934e000102030405000001")
},
{
"_id": ObjectId("5a834e000102030405000002"),
"child": ObjectId("5a934e000102030405000002")
},
],
"children": [
{
"_id": ObjectId("5a934e000102030405000000"),
"grandchild": ObjectId("5a734e000102030405000000")
},
{
"_id": ObjectId("5a934e000102030405000001"),
"grandchild": ObjectId("5a734e000102030405000001")
},
{
"_id": ObjectId("5a934e000102030405000002"),
"grandchild": ObjectId("5a734e000102030405000002")
}
],
"grandchildren": [
{
"_id": ObjectId("5a734e000102030405000000"),
"name": "grandchild1"
},
{
"_id": ObjectId("5a734e000102030405000001"),
"name": "grandchild2"
},
{
"_id": ObjectId("5a734e000102030405000002"),
"name": "grandchild3"
}
]
}
我想返回所有有孙子名字为“grandchild1”的父母。
类似的东西
$match: {
"child.grandchild.name": "grandchild1"
}
所以结果中只会返回这个父级--
[{
"_id": ObjectId("5a834e000102030405000000"),
"child": ObjectId("5a934e000102030405000000")
},]
【问题讨论】:
标签: node.js mongodb mongoose aggregation-framework