Thật không may, bạn không thể có được độ sâu đầy đủ trong một định dạng lồng nhau. Sử dụng chế độ xem là một giải pháp cho phép bạn thực hiện thao tác đó, nhưng bạn sẽ cần tạo một chế độ xem mới cho từng cấp độ nhúng mà bạn cần. tìm nạp tất cả cấu trúc phân cấp trong một truy vấn duy nhất, trước khi tính toán cây ở cấp ứng dụng.
Nó trông giống như sau:
db.node.aggregate([
{ $match: {
parentId: null
}},
{ $graphLookup: {
from: "node",
startWith: "$nodeId",
connectFromField: "nodeId",
connectToField: "parentId",
depthField: "depth",
as: "children"
}}
]);
Điều này sẽ cho phép bạn tìm nạp toàn bộ hệ thống phân cấp trong một lần, vì vậy, tiếp theo, bạn cần tính cây trong ứng dụng của mình, từ thông tin bạn sẽ có trong mảng "con".