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
example@sqldat.com_1 índice é criado como:db.getCollection('logs.res').createIndex(
{
"timeStamp" : -1,
"example@sqldat.com" : 1
},
{ sparse: true }
)
Ele deve suportar melhor sua consulta. Caso contrário, não há muita diferença entre
example@sqldat.com_1 e timeStamp_1_module_1_etc já que o único primeiro campo está sendo usado.