我有一个像这样的文档结构:
{
_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)
这可能吗?
亲切的问候
你可以自己$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)