MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Dokumen Kompleks Agregat Mongodb dengan Pencarian Bersarang

Anda telah melakukan $unwind dua kali, Jadi Anda perlu menggunakan dua $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. Grup pertama - untuk mengelompokkan objek anak. Tapi Jenis,Nama dan Header perlu disetel ke array induk dan anak masing-masing.
  2. Grup kedua - untuk mengelompokkan objek induk. Kami mendapatkan setiap bidang mandiri saat mengelompokkan anak. Di sini kita hanya perlu mengaturnya dalam urutan yang benar.

Bekerja Taman bermain Mongo

Catatan :Saat Anda menggunakan $lookup , itu akan memberikan sebuah array. Namun ada beberapa tempat yang Anda jadikan objek saja. Saya tidak tahu apakah Anda bergabung dalam hubungan satu-ke-satu atau tidak. Jika demikian, Anda dapat menggunakan operator posisional dalam proyeksi atau arrayElemAt




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tutorial MongoDB:Menghubungkan ke MongoDB di Scala

  2. MongoDB $indexOfArray

  3. Cara mengkloning database Mongodb dengan Mongoose

  4. jalankan hanya satu dari banyak pekerjaan duplikat dengan sidekiq?

  5. Temukan objek di antara dua tanggal MongoDB