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

Tài liệu phức hợp tổng hợp Mongodb với tra cứu lồng nhau

Bạn đã thực hiện xong $unwind hai lần, Vì vậy, bạn cần sử dụng hai $group .

{
  $group: {
    _id: {
      secId: "$_id",
      fId: "$Sections.id"
    },
    Type: {
      $first: "$Type"
    },
    Name: {
      $first: "$Name"
    },
    Header: {
      $first: "$Sections.Header"
    },
    fieldItems: {
      $push: "$Sections.FieldItems"
    }
  }
},
{
  $group: {
    _id: "$_id.secId",
    Type: {
      $first: "$Type"
    },
    Name: {
      $first: "$Name"
    },
    Sections: {
      $push: {
        id: "$_id.fId",
        Header: "$Header",
        fieldItems: "$fieldItems"
      }
    }
  }
}
  1. Nhóm đầu tiên - để nhóm các đối tượng con. Nhưng Loại, Tên và Tiêu đề cần được đặt thành mảng mẹ và con tương ứng.
  2. Nhóm thứ hai - để nhóm các đối tượng chính. Chúng tôi nhận được mọi trường độc lập trong khi nhóm con. Ở đây, chúng ta chỉ cần thiết lập nó theo đúng trình quản lý.

Làm việc Sân chơi Mongo

Lưu ý:Khi bạn sử dụng $lookup , nó sẽ cung cấp một mảng. Nhưng có một số nơi bạn chỉ làm cho nó như một đối tượng. Tôi không biết liệu bạn có tham gia vào mối quan hệ 1-1 hay không. Nếu vậy, bạn có thể sử dụng toán tử vị trí trong phép chiếu hoặc arrayElemAt




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - cập nhật tài liệu phụ bằng cách sử dụng $ set

  2. Thông báo cho giao diện người dùng Angular khi trạng thái trong phần phụ trợ Node (MongoDB) thay đổi

  3. Sự khác biệt giữa lưu trữ một ObjectId và dạng chuỗi của nó, trong MongoDB

  4. Tìm tài liệu trong đó một trường so sánh với một trường khác trong một mảng

  5. Truy vấn Mongoose cho lược đồ lồng nhau