W przypadku indeksów złożonych, w których jedno z indeksowanych pól jest tablicą, MongoDB użyje tylko dolnej lub górnej granicy dla zapytania o zakres, aby zapewnić zwrócenie prawidłowych dopasowań. Zobacz SERVER-958 na przykład, w którym ograniczanie się do górnych i dolnych granic indeksu nie doprowadziłoby do znalezienia oczekiwanego dokumentu.
Jeśli zapytanie dotyczące zakresu znajduje się w polu tablicy, możesz potencjalnie użyć $elemMatch
operatora, aby zoptymalizować zapytanie w oczekiwanych granicach indeksu. Podobnie jak w MongoDB 2.4, $elemMatch
operator nie działa na polach nietablicowych, więc niestety nie pomaga to w przypadku użycia. Możesz oglądać/zagłosować SERVER-6050:rozważ zezwolenie $elemMatch stosowane do tablic innych niż
w narzędziu do śledzenia problemów MongoDB.
Istnieje również otwarty problem SERVER-7959:Potencjalnie nieoczekiwane skany z indeksami złożonymi, gdy niektóre pola są wielokluczowe opisując to zachowanie.