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

MongoDB :Urutan indeks dan urutan kueri harus cocok?

Urutan kondisi dalam kueri Anda tidak memengaruhi apakah kueri dapat menggunakan indeks atau tidak.

misalnya struktur dokumen khas:

{
    "FieldA" : "A",
    "FieldB" : "B"
}

Jika Anda memiliki indeks majemuk pada A dan B :

db.MyCollection.ensureIndex({FieldA : 1, FieldB : 1})

Kemudian kedua kueri berikut akan dapat menggunakan indeks itu:

db.MyCollection.find({FieldA : "A", FieldB : "B"})
db.MyCollection.find({FieldB : "B", FieldA : "A"})

Jadi pengurutan kondisi dalam kueri tidak mencegah indeks digunakan - yang menurut saya adalah pertanyaan yang Anda ajukan.

Anda dapat dengan mudah menguji ini dengan mencoba 2 kueri di shell dan menambahkan .explain() setelah menemukan. Saya hanya melakukan ini untuk mengonfirmasi, dan keduanya menunjukkan bahwa indeks gabungan digunakan.

namun, jika Anda menjalankan kueri berikut, ini TIDAK akan menggunakan indeks karena FieldA tidak ditanyai pada:

db.MyCollection.find({FieldB : "B"})

Jadi, pengurutan bidang dalam indeks yang menentukan apakah itu dapat digunakan oleh kueri dan bukan pengurutan bidang dalam kueri itu sendiri (inilah yang dimaksud Lucas).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. cara meneruskan variabel ke regex

  2. Pembaruan Perubahan Lisensi SSL MongoDB

  3. Temukan dokumen dengan larik yang tidak berisi nilai tertentu

  4. Operasi penulisan file dalam skrip mongo?

  5. Dapatkan _id dari dokumen yang dimasukkan dalam database Mongo di NodeJS