在 MongoDB 中按 parentId 聚合嵌套子 ID
Aggregating nested children ids by parentId in MongoDB
有这样的父子结构:
folder-structure
合集:
[
{
"_id": "1",
"name": "document1",
"parentId": null
},
{
"_id": "2",
"name": "folder1",
"parentId": null,
},
{
"_id": "3",
"name": "folder2",
"parentId": "2",
},
{
"_id": "4"
"name": "document2",
"parentId": "2",
},
{
"_id": "5"
"name": "document3",
"parentId": "3",
}
]
目标是在每个文件夹中获取具有 contentIds
数组的文件夹,仅包含直接子 ID。响应应如下所示:
[
{
"_id": "2",
"name": "folder1",
"parentId": null,
"contentIds": ["3", "4"]
},
{
"_id": "3",
"name": "folder2",
"parentId": "2",
"contentIds": ["5"]
}
]
只需执行自我查找和 $map
即可获得所需的数据格式。
这里是Mongo playground供您参考。
有这样的父子结构:
folder-structure
合集:
[
{
"_id": "1",
"name": "document1",
"parentId": null
},
{
"_id": "2",
"name": "folder1",
"parentId": null,
},
{
"_id": "3",
"name": "folder2",
"parentId": "2",
},
{
"_id": "4"
"name": "document2",
"parentId": "2",
},
{
"_id": "5"
"name": "document3",
"parentId": "3",
}
]
目标是在每个文件夹中获取具有 contentIds
数组的文件夹,仅包含直接子 ID。响应应如下所示:
[
{
"_id": "2",
"name": "folder1",
"parentId": null,
"contentIds": ["3", "4"]
},
{
"_id": "3",
"name": "folder2",
"parentId": "2",
"contentIds": ["5"]
}
]
只需执行自我查找和 $map
即可获得所需的数据格式。
这里是Mongo playground供您参考。