MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB non utilizza il mio indice

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.