Zwykłe indeksy mongodb wykorzystują do budowy drzewa zarówno wartość pola, jak i typ.
Zapytania typu $empty: true
lub $ne: null
nie mają parametru żadnego typu i nie mogą korzystać z takich indeksów. Jest to przypadek szczególny i wymaga specjalnego rzadkiego indeksu
.
Jeśli Twój [email protected]_1
indeks jest tworzony jako:
db.getCollection('logs.res').createIndex(
{
"timeStamp" : -1,
"[email protected]" : 1
},
{ sparse: true }
)
Powinien najlepiej wspierać Twoje zapytanie. W przeciwnym razie nie ma dużej różnicy między [email protected]_1
i timeStamp_1_module_1_etc
ponieważ używane jest jedyne pierwsze pole.