MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB $ graphLookup lấy sâu ở tất cả các cấp độ - kết quả lồng nhau

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".



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Lược đồ cho giờ mở cửa MongoDB

  2. Truy vấn Bản ghi Hoạt động trong đó giá trị trong trường mảng

  3. Cập nhật mảng bên trong tài liệu Mongo không hoạt động

  4. Bản cập nhật Mongoose 'không thể sử dụng phần (..) để duyệt qua phần tử

  5. Mongodb x.509 'Không có tên chủ đề đã xác minh nào từ ứng dụng khách'