explain()
. Anda keluaran menunjukkan bahwa:
-
Ada 10962 objek yang memiliki
key.a : 456213154
.db.collection.find({"key.a": 456213154})
Anda kueri menggunakan indeks padakey.a
, dan mengembalikan 10962 objek. -
Ada 0 objek dalam koleksi Anda yang memiliki
key.a : 456213154
dan memilikikey.b : { $exists : true }
.db.collection.find({"key": {"a": 456213154, "b": {"$exists":true}}})
kueri memang menggunakan indeks Anda pada kunci.
Lihat n
nilai untuk setiap kueri - ini adalah nomor yang dikembalikan; dan cursor
nilai - ini adalah BtreeCursor
jika indeks digunakan. Dalam hal ini masuk akal mengapa kueri pertama membutuhkan waktu lebih lama, karena memiliki lebih banyak objek untuk dikembalikan secara signifikan.
Apakah Anda yakin bahwa dokumen dengan key.a : 456213154
nilai juga memiliki key.b
nilai?
Sunting:
Kueri dengan $exists
param adalah sintaks yang salah untuk memeriksa keberadaan dalam dokumen yang disematkan.
Coba db.collection.find({ "key.a" : 456213154, "key.b" : { "$exists" : true } })
.