Os índices regulares do mongodb usam tanto o valor do campo quanto o tipo para construir a árvore.
Consultas como
$empty: true
ou $ne: null
não tem um parâmetro de nenhum tipo e não pode se beneficiar de tais índices. É um caso especial e requer um índice esparso
especial . Se seu
[email protected]_1
índice é criado como:db.getCollection('logs.res').createIndex(
{
"timeStamp" : -1,
"[email protected]" : 1
},
{ sparse: true }
)
Ele deve suportar melhor sua consulta. Caso contrário, não há muita diferença entre
[email protected]_1
e timeStamp_1_module_1_etc
já que o único primeiro campo está sendo usado.