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

Filter larik subdokumen sambil tetap mengembalikan data induk jika kosong

Anda dapat menggunakan $redact sebagai ganti $match dalam kasus ini, seperti ini

db.collectionName.aggregate({
  $redact:{
    $cond:{ 
       if:{$and:[{$not:"$dealerName"},{$not:"$title"},{$eq:["$listed",false]}, 
       then: "$$PRUNE", 
       else: "$$DESCEND" 
    }
  }
})

Kita membutuhkan syarat pertama untuk melewati dokumen tingkat atas, syarat kedua untuk melewati tingkat kedua dan syarat ketiga untuk memangkas kendaraan. Tidak perlu $unwind dalam hal ini!

Satu hal lagi:$redact hanya tersedia di 2.6




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mengakses database produksi meteor pada tahun 2016

  2. Bagaimana cara langsung menanyakan bidang bersarang tanpa menentukan bidang induk?

  3. 504 kesalahan saat memasukkan ke database mongo

  4. MongoDB 'hitung ()' sangat lambat. Bagaimana kita memperbaiki/mengatasinya?

  5. Di luwak, bagaimana cara saya mengurutkan berdasarkan tanggal? (node.js)