MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB verwendet meinen Index nicht

Reguläre Mongodb-Indizes verwenden sowohl den Feldwert als auch den Typ, um den Baum zu erstellen.

Abfragen wie $empty: true oder $ne: null haben keinerlei Parameter und können von solchen Indizes nicht profitieren. Dies ist ein Sonderfall und erfordert einen speziellen Sparse-Index .

Wenn Ihr [email protected]_1 Index wird erstellt als:

db.getCollection('logs.res').createIndex(
    {
        "timeStamp" : -1,
        "[email protected]" : 1
    },
    { sparse: true }
)

Es sollte Ihre Anfrage am besten unterstützen. Ansonsten gibt es keinen großen Unterschied zwischen [email protected]_1 und timeStamp_1_module_1_etc da nur das erste Feld verwendet wird.