J'ai une collection avec ces indices:mongodb ne pas utiliser les index
db.colaboradores.getIndexKeys()
[ { "_id" : 1 }, { "nome" : 1 }, { "sobrenome" : 1 } ]
et une requête comme
db.colaboradores.find({_id: ObjectId("5040e298914224dca3000006")}).explain();
thatworks fines avec index
{
"cursor" : "BtreeCursor _id_",
"nscanned" : 0,
"nscannedObjects" : 0,
"n" : 0,
"millis" : 0,
}
mais lorsqu'il est exécuté:
db.colaboradores.find({nome: /^Administrador/}).explain()
mongodb ne pas utiliser les index plus: une
{
"cursor" : "BtreeCursor nome_1",
"nscanned" : 10000,
"nscannedObjects" : 10000,
"n" : 10000,
"millis" : 25,
}
des solutions? Merci!
William, quelle est la bonne façon alors? Merci pour l'article. – user1639326
Si vous allez faire des requêtes sur 'nome', vous avez besoin d'un index supplémentaire où 'nome' est le premier élément de l'index. –
@WilliamZ Bonne info, mais à partir de la sortie de 'getIndexKey()' dans le message d'origine, il semble qu'il possède déjà un index à clé unique sur 'nome' (il montre 3 index séparés, pas un index composé) . – JohnnyHK