Me topé con un problema muy similar, y Indexing Consejos y preguntas frecuentes en Mongodb.org dice, cita:
Entonces, si tiene las claves a, b y c y ejecuta db.ensureIndex({a:1, b:1, c:1}), estas son las "directrices" para usar el índice tanto como sea posible:
Bien:
-
encontrar(a=1,b>2)
-
encontrar(a>1 y a<10)
-
encontrar(a>1 y a<10).ordenar(a)
Malo:
- buscar(a>1, b=2)
-
encontrar(a=1,b=2).ordenar(c)
-
encontrar(a=1,b>2)
-
encontrar(a=1,b>2 y b<4)
-
encontrar(a=1,b>2).ordenar(b)
Malo:
-
encontrar(a>1,b>2)
-
encontrar(a=1,b>2).ordenar(c)
¡Espero que ayude!
/J