Gli indici mongodb regolari utilizzano sia il valore del campo che il tipo per costruire l'albero.
Query come $empty: true
o $ne: null
non hanno un parametro di alcun tipo e non possono beneficiare di tali indici. È un caso speciale e richiede uno speciale indice sparso
.
Se il tuo [email protected]_1
l'indice viene creato come:
db.getCollection('logs.res').createIndex(
{
"timeStamp" : -1,
"[email protected]" : 1
},
{ sparse: true }
)
Dovrebbe supportare al meglio la tua query. Altrimenti non c'è molta differenza tra [email protected]_1
e timeStamp_1_module_1_etc
poiché viene utilizzato l'unico primo campo.