Ve vnořeném formátu bohužel nelze získat plnou hloubku. Použití pohledu je řešení, které vám umožní tuto operaci provést, ale budete muset vytvořit nový pohled pro každou úroveň vložení, kterou potřebujete. Místo toho bych zvážil provedení vyhledávání grafů bez poskytnutí hloubky, počínaje kořenovou úrovní, načtení celé hierarchie v jediném dotazu před výpočtem stromu na úrovni aplikace.
To by vypadalo nějak takto:
db.node.aggregate([
{ $match: {
parentId: null
}},
{ $graphLookup: {
from: "node",
startWith: "$nodeId",
connectFromField: "nodeId",
connectToField: "parentId",
depthField: "depth",
as: "children"
}}
]);
To by vám mělo umožnit načíst celou hierarchii najednou, takže dále musíte vypočítat strom ve vaší aplikaci z informací, které budete mít v poli "children".