Иерархическая Мангуст-запрос в Seneca конструирование с несколькими уровнями
Мне нужна помощь в решении проблемы обратного вызова JavaScript.
У меня есть mongoldb-коллекция образцов на разных уровнях. Структура выглядит следующим образом. Я получил документы в виде:
{_id: "1", "parent": ""}, {_id: "2", "parent": "1"}, {_id: "3", "parent": "2"}
Теперь я хочу запросить все дочерние элементы, например id= "1", чтобы получить JSON, подобный этому:
{_id: "1", "children": [{_id: "2", "parent": "1", "children": [{_id: "3", "parent": "2"}]}]}
Я создал микро-сервис и опубликовал эту функцию с помощью API (см. ниже).
А функция loadChildren выглядит так:
loadChildren: function (id, cb) { this.find({ parent: id }).exec(cb); }
Как видно, я пытаюсь получить несколько уровней, но я застрял, чтобы сделать его рекурсивным. Что является лучшим способом чтобы это сделать, чтобы это работало. Я также пытался использовать Мангуст-дерево и Мангуст-путь-дерево, но оба они не работают должным образом.
Спасибо за вашу помощь!!
Что я уже пробовал:
this.add('role:sample, cmd:children', function (msg, respond) { Sample.loadChildren(msg.ID, function (err, samples) { samples.forEach(function (children) { children = children; Sample.loadChildren(children._id, function (err, childchild) { children.children = childchild; childchild.forEach(function(children){ Sample.loadChildren(children._id, function(err, childX){ }) }) }); }) respond(null, { samples: samples }); }); });