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

Indeks MongoDB pada subdokumen tidak digunakan berdasarkan sintaks kueri

Saya pikir saya mengetahuinya setelah memeriksa dokumen mongo. Pada dasarnya, ada ada perbedaan semantik antara keduanya. Pada dasarnya, dalam bentuk pertama dari kueri {c: {d: d1}} , mongo mengasumsikan bahwa Anda menentukan seluruh subdokumen. Jadi jika Anda memiliki subdokumen {c: {d: d1, e: e1}} , itu tidak akan cocok.

OTOH, bentuk kedua dari query {'c.d': d1} menyiratkan Anda hanya menentukan kecocokan pada satu bidang dalam subdokumen. Ini akan cocok bahkan jika subdokumen memiliki bidang lain atau seluruh subdokumen.

Perbedaan ini meluas ke indeks. _ensureIndex({c: 1}) dan _ensureIndex({'c.d': 1}) adalah dua indeks yang berbeda, dan meskipun yang pertama mengindeks seluruh subdokumen, itu tidak akan digunakan jika Anda melakukan kueri pada bidang individual dengan c.d notasi.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo:kesalahan jaringan saat mencoba menjalankan perintah 'whatsmyuri' di host

  2. Node Js Cara mendownload file ke memori tanpa menulis file ke sistem atau tanpa membuat file di direktori

  3. Atribut BsonElement dan logika deserialisasi khusus dengan driver MongoDB C#

  4. Bagaimana cara mengimpor Mongodb ObjectId dari file CSV menggunakan mongoimport?

  5. Obrolan Waktu Nyata Dengan Modulus dan Node.js