MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB $graphLookup obtém filhos de todos os níveis de profundidade - resultado aninhado


Infelizmente, você não pode obter toda a profundidade em um formato aninhado. Usar uma visualização é uma solução alternativa que permite realizar essa operação, mas você precisaria criar uma nova visualização para cada nível de incorporação necessário. buscar toda a hierarquia em uma única consulta, antes de calcular a árvore no nível do aplicativo.

Isso se pareceria com algo assim:
db.node.aggregate([
    { $match: {
        parentId: null
    }},
    { $graphLookup: {
        from: "node",
        startWith: "$nodeId",
        connectFromField: "nodeId",
        connectToField: "parentId",
        depthField: "depth",
        as: "children"
    }}
]);

Isso deve permitir que você busque toda a hierarquia de uma só vez, então, em seguida, você precisa calcular a árvore em seu aplicativo, a partir das informações que você terá no array "filhos".