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

Mencari cara untuk mengembalikan dokumen dari koleksi lain berdasarkan kumpulan dari yang lain, MongoDB

Mirip dengan "bergabung" di sql, di Mongo Anda harus menggunakan "pencarian".

Untuk menggunakan pencarian, Anda harus menggunakan kueri "agregat",

Jadi kueri yang Anda butuhkan adalah,

db.collection('users').aggregate({$match:{ email: 'example_email' }},
    {$unwind:{path:"$sensors"}},
    {$lookup:{from:"sensor", localField: "sensors", foreignField:"sensorId", as:"sensorDetails"}},
(err, userData)=>{
      console.log(userData);
})

Jadi apa yang dilakukan kueri ini,

lihat baris "$lookup" ---> dari koleksi "pengguna", ia menggunakan bidang "sensor" (bidang lokal ke koleksi pengguna Anda seperti id utama dalam sql) dan mengambil info dari koleksi "sensor" yang cocok dengan sensorId (asing dalam koleksi sensor), dan simpan hasilnya di kolom "sensorDetails".

Anda dapat memiliki akses ke sensorDetails dengan "userData[0].sensorDetails".sensorDetails akan berupa array.

Periksa dokumen resmi tentang pencarian Baca juga tentang bersantai



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. pengurangan nilai dalam koleksi hingga 0

  2. mencoba menampilkan data dalam batu giok dari mongodb

  3. Jika agregat mongodb tidak menggunakan indeks untuk $lookup mengapa kinerja saya meningkat saat menggunakan indeks?

  4. Kesalahan Fatal Daftar Hitam MongoDB

  5. Mengapa mongodump tidak mencadangkan indeks?