Helaas kunt u niet de volledige diepte krijgen in een genest formaat. Het gebruik van een weergave is een tijdelijke oplossing waarmee u die bewerking kunt uitvoeren, maar u zou een nieuwe weergave moeten maken voor elk niveau van inbedding dat u nodig hebt. het ophalen van de hele hiërarchie in een enkele query, voordat de boom op applicatieniveau wordt berekend.
Dit zou er ongeveer zo uitzien:
db.node.aggregate([
{ $match: {
parentId: null
}},
{ $graphLookup: {
from: "node",
startWith: "$nodeId",
connectFromField: "nodeId",
connectToField: "parentId",
depthField: "depth",
as: "children"
}}
]);
Hiermee zou u de hele hiërarchie in één keer moeten ophalen, dus vervolgens moet u de boom in uw toepassing berekenen op basis van de informatie die u in de "children" -array zult hebben.