Timo Schüler Ответов: 0

Иерархическая Мангуст-запрос в 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 });
    });
});

0 Ответов