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 example@sqldat.com_1 indeks jest tworzony jako:
db.getCollection('logs.res').createIndex(
{
"timeStamp" : -1,
"example@sqldat.com" : 1
},
{ sparse: true }
)
Powinien najlepiej wspierać Twoje zapytanie. W przeciwnym razie nie ma dużej różnicy między example@sqldat.com_1 i timeStamp_1_module_1_etc ponieważ używane jest jedyne pierwsze pole.