¿Puede MongoDB usar un índice al verificar la existencia de un campo con el operador $ exist?
Si tengo datos en miusers
colección que se parece a:
{ name: '...',
email: '...',
...,
photos: {
123: { url: '...', title: '...', ... },
456: { url: '...', title: '...', ... },
...
}
}
Y quiero encontrar qué usuario posee la identificación con foto 127, entonces estoy usando la consulta:
db.users.find( {'photos.127': {'$exists' => true} } );
Lo he intentado, pero no parece posible que MongoDB use un índice para esta consulta. El índice que probé fue:db.users.ensureIndex({photos:1});
. Y cuando uséexplain()
mongo me dijo que estaba usando un BasicCursor (es decir, no se utilizó ningún índice).
Es posible crear un índice que mongo usará para esta consulta?