MongoDB - 如何获取包含子项计数的文档

Lea*_*dro 2 mongodb

我有一个像这样的文档结构:

{ 
  _id:
  name:
  parent:
}
Run Code Online (Sandbox Code Playgroud)

我有一些文件,其中一些有一个parentID(就像一棵树)。我想根据 ID 获取一份文档,还想获取该特定文档的子文档数量。

例如:

{ 
  _id:1
  name: 1
  parent:
}
{ 
  _id:2
  name: 2
  parent: 1
}
{ 
  _id:3
  name: 3
  parent: 1
}
Run Code Online (Sandbox Code Playgroud)

我想通过 id 1 查找并得到类似的东西

{ 
  _id:1
  name: 1
  parent:
  childCount: 2
}
Run Code Online (Sandbox Code Playgroud)

这可能吗?

亲切的问候

Sar*_*ana 6

你可以自己$lookup去数孩子们

db.tp1.aggregate([
    {$lookup: {from:"tp1", localField : "_id", foreignField: "parent", as: "children"}},
    {$addFields:{children : {$size : "$children"}}}
])
Run Code Online (Sandbox Code Playgroud)

结果

{ "_id" : 1, "name" : 1, "parent" : null, "children" : 2 }
{ "_id" : 2, "name" : 2, "parent" : 1, "children" : 0 }
{ "_id" : 3, "name" : 3, "parent" : 1, "children" : 0 }
Run Code Online (Sandbox Code Playgroud)