Как получить данные в древовидной структуре в mongodb
Привет
у нас есть обязательное отображение данных в древовидном формате.
выборочные данные:
db.FamilyTree.insert({"id":"100", "ParentName":"Jhon Smith", "Children" : "Michael Smith" }) db.FamilyTree.insert({"id":"100", "Diana Smith":"Jhon Smith", "Children" : "Diana Smith"}) db.FamilyTree.insert({"id":"101", "ParentName":"Michael Smith", "Children" : ""}) db.FamilyTree.insert({"id":"102", "ParentName":"Diana Smith", "Children" : "Britney Smith"}) db.FamilyTree.insert({"id":"301", "ParentName":"Britney Smith", "Children" : ""}) db.FamilyTree.insert({"id":"200", "ParentName":"Richard Smith", "Children" : "M Smith" }) db.FamilyTree.insert({"id":"200", "ParentName":"Richard Smith", "Children" : "D Smith" }) db.FamilyTree.insert({"id":"201", "ParentName":"M Smith", "Children" : "" }) db.FamilyTree.insert({"id":"202", "ParentName":"D Smith", "Children" : "" })
выходные данные о данных должны быть такими, как показано ниже:
[ { "id":"100", "name":"Jhon Smith", "children":[ { "id":"101", "name":"Michael Smith", "children":null }, { "id":"102", "name":"Diana Smith", "children":[ { "id":"301", "name":"Britney Smith", "children":null } ] } ] }, { "id":"200", "name":"Richard Smith", "children":[ { "id":101, "name":"Michael Smith", "children":null }, { "id":"102", "name":"Diana Smith", "children":null } ] } ]
Что я уже пробовал:
I Have tried with $graphLookup but I didn't get required output: <pre>db.FamilyTree.aggregate( [ { $project: { _id: 0}}, { $graphLookup: { from: "FamilyTree", startWith: "$Children", connectFromField: "Children", connectToField: "ParentName", as: "TreeSearch" } } ] )
Пожалуйста, поделитесь, если вы уже сталкивались с таким сценарием.
Gerry Schmitz
дБ.Семейное древо.вставить({"идентификатор":"100", "Диана Смит":"Джон Смит", "Дети" : "Диана Смит"})
Не следует "шаблону".