MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB n'utilise pas mon index

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é.