Mongodb вложенная структура дерева - PullRequest
0 голосов
/ 24 августа 2018

Как получить непосредственные дочерние данные в древовидном формате ??

Рассмотреть следующие примеры данных .... Если ключ поиска в Индии, то результат должен содержать весь дочерний узел с данными проекта ...

Коллекция проектов

[ 
 { id : 1, name : "p1" location : Pune },
 { id : 2, name : "p2" location : Mumbai },
 { id : 3, name : "p3" location : Nashik },
 { id : 4, name : "p4" location : Pune },
 { id : 5, name : "p5" location : Maharashstra },
 { id : 6, name : "p6" location : Pune }
 ]

Коллекция местоположений

 [
 {id : 1 name : 'l1' , 'location' : Pune , parentLocation : Maharashstra},
 {id : 2 name : 'l2' , 'location' : Nashik , parentLocation : Maharashstra},
 {id : 3 name : 'l3' , 'location' : Mumbai , parentLocation : Maharashstra},
 {id : 4 name : 'l4' , 'location' : Maharashstra , parentLocation : India},
 {id : 5 name : 'l5' , 'location' : India , parentLocation : null}

 ]

Ожидаемый результат должен быть ниже .... при использовании агрегации Монго

Я хочу получить все данные о проекте с подробностями ....

Ожидаемый вывод

 India - p1,p2,p3,p4,p5
    Maharashstra - p5
       Pune - p1,p4
       Mumbai - p2
       Nashik - p3

Ожидаемый вывод Json

{
"location": "India",
"parentLocation": null,
"Child": [
    {
        "location": "Maharashstra",
        "parentLocation": "India",
        "ProjectCount": 6,
        "ProjectDetails" : [
            { "id" : 5, "name" : "p5", "location" : "Maharashstra"
            }
        ],
        "Child": [
            {
                "location": "Pune",
                "parentLocation": "Maharashstra",
                "ProjectCount": 3,
                "ProjectDetails": [
                    {
                        "id": 1,
                        "name": "p1",
                        "location": "Pune"
                    },
                    {
                        "id": 4,
                        "name": "p4",
                        "location": "Pune"
                    },
                    {
                        "id": 6,
                        "name": "p6",
                        "location": "Pune"
                    }
                ]
            },
            {
                "location": "Nashik",
                "parentLocation": "Maharashstra",
                "ProjectCount": 1,
                "ProjectDetails": [
                    {
                    "id": 3,
                    "name": "p3",
                    "location": "Nashik"
                    }
                ]
            },
            {
                "location": "Mumbai",
                "parentLocation": "Maharashstra",
                "ProjectCount": 1,
                "ProjectDetails": [
                    {
                    "id": 2,
                    "name": "p2",
                    "location": "Mumbai"
                    }
                ]
            }
        ]
    }
]

}

Пожалуйста, обратитесь к дереву выше ... для вывода Спасибо ....

...