Med sammansatta index där ett av de indexerade fälten är en array, kommer MongoDB endast att använda antingen en nedre eller övre gräns för intervallfrågan för att säkerställa att korrekta matchningar returneras. Se SERVER-958 till exempel där begränsning till både övre och nedre indexgränser inte skulle hitta det förväntade dokumentet.
Om din intervallfråga finns i arrayfältet kan du eventuellt använda $elemMatch
Operatören fungerar inte på icke-matrisfält så tyvärr hjälper detta inte ditt användningsfall. Du kan titta/rösta upp SERVER-6050:Överväg att tillåta $elemMatch tillämpad på icke-arrayer
i MongoDB issue tracker.
Det finns också ett öppet problem SERVER-7959:Potentiellt oväntade skanningar med sammansatta index när vissa fält är flernyckel beskriver detta beteende.