sql >> Base de Datos >  >> NoSQL >> MongoDB

eliminando scanAndOrder:verdadero en el resultado de mi consulta MongoDB

¡Gracias por el saludo a Dex!

Si no es demasiado tarde aquí en 2013, el índice que recomiendo para evitar scanAndOrder aquí es { _id:-1, cl:1, user_id:1 }.

La razón es que un $lt en _id y un $in en user_id constituyen rangos a través de múltiples índices "cubos". Un índice de cualquier otro orden que no sea el anterior significa que esos cubos aún deben clasificarse juntos para satisfacer una clasificación en _id. Al poner _id primero, todos los documentos visitados en el índice se ordenarán correctamente por adelantado.

Tenga en cuenta que esta es una ligera mejora con respecto a la sugerencia de Andre ({ _id:-1, user_id:1, cl:1 }, que también debería evitar scanAndOrder) porque permite la verificación directa de equivalencia en cl para reducir los resultados.

Consulte http://blog.mongolab.com/2012/06/cardinal- ins/ para más detalles.