Редовните индекси на mongodb използват както стойността на полето, така и типа, за да изградят дървото.
Заявки като $empty: true или $ne: null нямат параметър от никакъв тип и не могат да се възползват от такива индекси. Това е специален случай и изисква специален разреден индекс
.
Ако вашият example@sqldat.com_1 индексът се създава като:
db.getCollection('logs.res').createIndex(
{
"timeStamp" : -1,
"example@sqldat.com" : 1
},
{ sparse: true }
)
Той трябва да поддържа вашето запитване най-добре. В противен случай няма голяма разлика между example@sqldat.com_1 и timeStamp_1_module_1_etc тъй като се използва само първото поле.