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

Temukan dokumen dengan larik yang tidak berisi nilai tertentu

Tidak ada yang salah dengan apa yang pada dasarnya Anda coba, tetapi mungkin satu-satunya klarifikasi di sini adalah kesalahpahaman umum bahwa Anda memerlukan operator seperti $nin atau $in saat menanyakan array.

Juga Anda benar-benar perlu lakukan di sini adalah kecocokan ketidaksetaraan dasar dengan $ne :

Person.find({ "groups": { "$ne": group._id } })

Operator "array" bukan untuk "target array" tetapi untuk menyediakan "daftar" kondisi untuk diuji dalam bentuk yang nyaman.

Person.find({ "groups": { "$nin": [oneId, twoId,threeId] } })

Jadi gunakan saja operator normal untuk kondisi tunggal, dan simpan $in dan $nin untuk tempat Anda ingin menguji lebih dari satu kondisi terhadap nilai tunggal atau daftar. Jadi sebaliknya.

Jika Anda perlu meneruskan "daftar" argumen di mana "tidak ada" argumen dalam daftar yang disediakan cocok dengan isi array, maka Anda membalikkan logika dengan $not operator dan $all operator:

Person.find({ "groups": { "$not": { "$all": [oneId,twoId,threeId] } } })

Jadi itu berarti "tidak satu pun dari daftar" yang tersedia ada dalam larik.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara menghentikan mongo DB dalam satu perintah

  2. Pilih Kelompokkan berdasarkan jumlah dan jumlah berbeda dalam kueri mongodb yang sama

  3. MongoDB - Perbarui Dokumen

  4. Argumen yang diteruskan harus berupa string 24 karakter hex - saya pikir itu

  5. MongoDB $sampel