MongoDB pode usar um índice ao verificar a existência de um campo com o operador $ exist
Se eu tiver dados no meuusers
coleção que se parece com:
{ name: '...',
email: '...',
...,
photos: {
123: { url: '...', title: '...', ... },
456: { url: '...', title: '...', ... },
...
}
}
E eu quero descobrir qual usuário possui a identificação com foto 127, então estou usando a consulta:
db.users.find( {'photos.127': {'$exists' => true} } );
Eu tentei, mas não parece possível que o MongoDB use um índice para esta consulta. O índice que tentei foi:db.users.ensureIndex({photos:1});
. E quando eu useiexplain()
mongo me disse que estava usando um BasicCursor (ou seja, nenhum índice foi usado
possível criar um índice que o mongo usará para esta consult