U složených indexů, kde je jedním z indexovaných polí pole, MongoDB použije pouze dolní nebo horní mez pro dotaz na rozsah, aby bylo zajištěno, že budou vráceny správné shody. Viz SERVER-958 například, kdy omezení na horní i dolní hranici indexu nenajde očekávaný dokument.
Pokud je váš dotaz na rozsah v poli pole, můžete potenciálně použít $elemMatch
operátor optimalizuje váš dotaz v rámci očekávaných indexů. Stejně jako v MongoDB 2.4, $elemMatch
Operátor nefunguje na polích bez pole, takže to bohužel nepomůže vašemu případu použití. Můžete sledovat/hlasovat pro SERVER-6050:Zvažte povolení $elemMatch aplikovaného na jiná pole
v nástroji pro sledování problémů MongoDB.
Existuje také otevřený problém SERVER-7959:Potenciálně neočekávané skenování se složenými indexy, když jsou některá pole víceklíčová popisující toto chování.