I have a dataset like this (for example):
{
name : "john" ,
_id : "0"
},
{
name : "Richard" ,
parent_id : "0" ,
_id : "1"
},
{
name : "Kevin" ,
parent_id : "0" ,
_id : "2"
},
{
name : "William" ,
parent_id : "1" ,
_id : "3"
},
{
name : "George" ,
parent_id : "3" ,
_id : "4"
}
I am trying to write a function to receive _idand return all children to any depth of this node, for example, for _id = 0I need something like this:
[
{
name : "Richard" ,
parent_id : "0" ,
depth : "1" ,
_id : "1"
},
{
name : "Kevin" ,
parent_id : "0" ,
depth : "1" ,
_id : "2"
},
{
name : "William" ,
parent_id : "1" ,
depth : "2" ,
_id : "3"
},
{
name : "George" ,
parent_id : "3" ,
depth : "3" ,
_id : "4"
}
]
I am writing several recursive functions to iterate in my mongodb docs, but the main problem is that I cannot handle callbacks (asynchronous) and don’t know when and how I can finish the recursive function.
How can I do this using mongodb and node.js? Any idea could be helpful, thanks.