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

Pencarian MongoDB untuk setiap dict dalam daftar dalam koleksi

Sementara disebutkan bahwa memang $and operator tidak diperlukan, dalam kedua bentuk ini bukan kueri yang Anda inginkan. Pertimbangkan hal berikut:

db.user.find_one({ 'names.firstName': 'alice','names.lastName': 'jones' })

Ini sebenarnya memang cocok dengan catatan yang diberikan karena ada kedua elemen dengan nilai "FirstName" sama dengan "alice" dan "lastName" sama dengan "jones". Tapi tentu saja masalahnya di sini sederhana karena tidak ada elemen aktual dalam array yang memiliki sub-dokumen untuk kedua nilai tersebut.

Untuk mencocokkan di mana elemen array berisi "kedua" kriteria yang diberikan, Anda perlu menggunakan $elemMatch operator. Ini menerapkan kondisi kueri ke "elemen" larik.

db.user.find_one({ 
    'names': { '$elemMatch': { 'firstName': 'alice','lastName': 'smith' }
})

Dan tentu saja jika Anda mencoba "alice" dan "jones" maka itu tidak akan cocok karena tidak ada elemen yang benar-benar mengandung operasi itu.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Integrasi Node.js dan Backbone.js

  2. Bagaimana cara membatalkan kueri di mongo JavaScript shell?

  3. Agregat Pymongo:memfilter berdasarkan jumlah bidang (dinamis)

  4. Mengganti dokumen yang disematkan dalam array di MongoDB

  5. bson.D vs bson.M untuk menemukan kueri