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

Permintaan mongodb bergabung dengan pengoptimalan

Saya pikir Anda ingin melakukan sesuatu seperti ini. Saya tidak menguji kueri ini, tetapi inilah yang akan saya coba di tempat Anda. Ini hanya mungkin pada 3.6 mongodb, karena mendukung banyak gabungan. Idenya adalah untuk bergabung dengan semua 3 koleksi. Pertama bergabung adalah Orang Tua dan Orang dengan id Orang Tua, dan Orang "parentsId". Yang kedua bergabung adalah Orang Tua dan Kakek-nenek. Kemudian Anda menyaring berdasarkan nama kakek-nenek dan Anda akan mendapatkan dokumen yang berisi kakek-nenek itu, putranya (orang tua), dan cucunya (orang). Kemudian Anda tinggal memproyeksikan orang tersebut.

    db.Parents.aggregate([
       {
          $lookup:{
             from:"Person",
             localField:"_id",
             foreignField:"parentId",
             as:"Person"
          }
       },
       {
          $unwind:"$Person"
       },
       {
          $lookup:{
             from:"Grandparents",
             localField:"grandparentId",
             foreignField:"_id",
             as:"Grandparents"
          }
       },
       {
          $unwind:"$Grandparents"
       },
       {$match:{Grandparents.name:"x"}},
       {$project:{Person.name:1,Person._id:1}}
}])

Saya pikir ini akan berhasil




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - dapatkan dokumen dengan atribut maksimal per grup dalam koleksi

  2. mongodump dari node jarak jauh - tidak dapat mengautentikasi menggunakan mekanisme SCRAM-SHA-256

  3. mongoengine - Abaikan bidang tambahan untuk validasi skema

  4. Bagaimana cara menyimpan data saya di mongoDB dengan menggunakan expressjs?

  5. MongoDB $set tidak memperbarui catatan