我與這些指標的集合:MongoDB中不使用索引
db.colaboradores.getIndexKeys()
[ { "_id" : 1 }, { "nome" : 1 }, { "sobrenome" : 1 } ]
和像
db.colaboradores.find({_id: ObjectId("5040e298914224dca3000006")}).explain();
thatworks罰款指標
{
"cursor" : "BtreeCursor _id_",
"nscanned" : 0,
"nscannedObjects" : 0,
"n" : 0,
"millis" : 0,
}
但查詢運行時:
db.colaboradores.find({nome: /^Administrador/}).explain()
的MongoDB不使用索引更多:
{
"cursor" : "BtreeCursor nome_1",
"nscanned" : 10000,
"nscannedObjects" : 10000,
"n" : 10000,
"millis" : 25,
}
任何解決方案? 謝謝!
威廉,那麼正確的方法是什麼?感謝文章。 – user1639326
如果你打算在'nome'上進行查詢,你需要有一個額外的索引,'nome'是索引中的第一個元素。 –
@WilliamZ好信息,但是從原始帖子中的getIndexKey()的輸出來看,他已經有了'nome'上的單鍵索引(它顯示了3個獨立的單鍵索引,而不是一個複合索引) 。 – JohnnyHK