在 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供您参考。