Les index mongodb réguliers utilisent à la fois la valeur et le type du champ pour construire l'arborescence.
Requêtes telles que $empty: true
ou $ne: null
n'ont pas de paramètre d'aucun type et ne peuvent pas bénéficier de tels index. C'est un cas particulier et nécessite un sparse index
spécial .
Si votre [email protected]_1
index est créé comme :
db.getCollection('logs.res').createIndex(
{
"timeStamp" : -1,
"[email protected]" : 1
},
{ sparse: true }
)
Il devrait mieux répondre à votre requête. Sinon, il n'y a pas beaucoup de différence entre [email protected]_1
et timeStamp_1_module_1_etc
puisque seul le premier champ est utilisé.