Desværre kan du ikke få den fulde dybde i et indlejret format. Brug af en visning er en løsning, som lader dig udføre den handling, men du skal oprette en ny visning for hvert niveau af indlejring, du har brug for. I stedet ville jeg overveje at udføre et graphLookup uden at angive en dybde, startende fra rodniveauet, henter hele hierarkiet i en enkelt forespørgsel, før træet beregnes på applikationsniveau.
Dette ville se sådan ud:
db.node.aggregate([
{ $match: {
parentId: null
}},
{ $graphLookup: {
from: "node",
startWith: "$nodeId",
connectFromField: "nodeId",
connectToField: "parentId",
depthField: "depth",
as: "children"
}}
]);
Dette skulle give dig mulighed for at hente hele hierarkiet på én gang, så derefter skal du beregne træet i din applikation ud fra de oplysninger, du vil have i "børn"-arrayet.