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

Mongo Query bidang bersarang dalam array.

Anda ingin menggunakan $elemMatch untuk ini.

{"genres": { "$elemMatch" :  {"name": "Shooter"} } }
// or
{"genres": { "$elemMatch" :  {"name": { "$in": ["Shooter"] } } } }

https://docs.mongodb.com/manual/reference/operator/ query/elemMatch/

Anda juga dapat menggunakan notasi titik mongodb dan itu akan berfungsi seperti yang Anda lakukan kecuali:

{"genres.name": "Shooter"}
// or
{"genres.name": { "$in": ["Shooter"]}}

Mongodb tahu bagaimana menafsirkan ini jika genres adalah sebuah array. Perlu diingat bahwa kueri notasi titik sedikit ambigu, karena kueri ini juga akan cocok dengan name properti jika genres properti bukan array. Misalnya, dokumen ini akan cocok dengan:

{"genres": { "name": "Shooter" } }

Dalam semua kasus, Anda dapat mengindeks name properti di genres array dan indeks akan digunakan untuk pencarian.

db.collection.createIndex({'genres.name': 1})

https://docs.mongodb.com/manual/reference/ glosarium/#istilah-titik-notasi

https://docs.mongodb.com/manual/reference/operator/ kueri/dalam/




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Koneksi ke ReplicaSet MongoDB di Kubernetes

  2. MongoDB $lookup vs populasi Mongoose

  3. Mencari string dengan karakter khusus dalam dokumen MongoDB

  4. Kueri tanggal tipe string di mongodb

  5. Hapus duplikat dari basis data MongoDB 4.2