Database

[{_id:1,parent_id:null,name:"First element",},{_id:2,parent_id:1,name:"Second element",},{_id:3,parent_id:2,name:"third element",}]

Query

db.collection.aggregate([{"$graphLookup":{"from":"collection","startWith":"$_id","connectFromField":"_id","connectToField":"parent_id","as":"children"}},{"$addFields":{"children":{$size:"$children"}}}])

Result