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