Database

[{_id:"id1",Name:"Workspace",ObjectType:"folder",ParentIds:[]},{_id:"id2",Name:"Project 1",ObjectType:"project",ParentIds:["id1"]},{_id:"id3",Name:"Document 1",ObjectType:"document",ParentIds:["id2"]},{_id:"id4",Name:"File 1",ObjectType:"file",ParentIds:["id3"]},{_id:"id5",Name:"File 2",ObjectType:"file",ParentIds:["id3"]},{_id:"id6",Name:"Document 2",ObjectType:"document",ParentIds:["id2"]},{_id:"id7",Name:"Project 2",ObjectType:"project",ParentIds:["id1"]}]

Query

db.collection.aggregate([{"$match":{"_id":"id2"}},{"$graphLookup":{"from":"collection","startWith":"$_id","connectFromField":"_id","connectToField":"ParentIds","as":"children"}}])

Result