MongoDB Consulta Ordenar() y Limitar() con Ordenar por ejemplos
โก Resumen inteligente
MongoDB Los modificadores de consulta Sort() y Limit() controlan cuรกntos documentos devuelve una consulta y en quรฉ orden. El mรฉtodo limit() limita el nรบmero de resultados, mientras que sort() ordena los documentos en orden ascendente o descendente utilizando valores de 1 o -1.

ยฟQuรฉ son las modificaciones de consultas?
Mongo DB Proporciona modificadores de consulta como las clรกusulas 'limit' y 'Orders' para brindar mรกs flexibilidad al ejecutar consultas. Analizaremos los siguientes modificadores de consulta.
MongoDB Limitar resultados de consulta
Este modificador se utiliza para limitar la cantidad de documentos que se devuelven en el conjunto de resultados de una consulta. El siguiente ejemplo muestra cรณmo se puede hacer esto.
db.Employee.find().limit(2).forEach(printjson);
Code Explicaciรณn
- El cรณdigo anterior toma la funciรณn de bรบsqueda que devuelve todos los documentos de la colecciรณn pero luego usa la clรกusula de lรญmite para limitar la cantidad de documentos que se devuelven a solo 2.
Resultado
Si el comando se ejecuta correctamente, se mostrarรก la siguiente salida
El resultado muestra claramente que, dado que hay un modificador de lรญmite, como mรกximo solo se devuelven 2 registros como parte del conjunto de resultados basado en el ObjectId en orden ascendente.
MongoDB Ordenar por orden descendente
Se puede especificar el orden de los documentos que se devolverรกn en funciรณn del orden ascendente o descendente de cualquier clave de la colecciรณn. El siguiente ejemplo muestra cรณmo se puede hacer esto.
db.Employee.find().sort({Employeeid:-1}).forEach(printjson)
Code Explicaciรณn
- El cรณdigo anterior toma la funciรณn de clasificaciรณn que devuelve todos los documentos de la colecciรณn pero luego usa el modificador para cambiar el orden en el que se devuelven los registros. Aquรญ el -1 indica que queremos devolver los documentos segรบn el orden descendente de la identificaciรณn del empleado.
Si el comando se ejecuta correctamente, se mostrarรก la siguiente salida
Resultado
El resultado muestra claramente los documentos que se devuelven en orden descendente de Employeeid.
El orden ascendente estรก definido por el valor 1.
MongoDB Ordenar por orden ascendente
Asรญ como la funciรณn `sort()` puede devolver los documentos en orden descendente, tambiรฉn puede devolverlos en orden ascendente. El orden ascendente se define mediante el valor 1 en el objeto `sort`. Esto ordena los documentos del valor mรกs pequeรฑo al mรกs grande, lo cual es รบtil para listar los registros del mรกs antiguo al mรกs reciente o de la A a la Z.
El siguiente ejemplo ordena todos los documentos de empleados por Employeeid en orden ascendente:
db.Employee.find().sort({Employeeid:1}).forEach(printjson)
Asรญ es como funciona la consulta:
- La funciรณn find() recupera todos los documentos de la colecciรณn Employee.
- sort({Employeeid:1}) ordena los resultados por el campo Employeeid, desde el id mรกs bajo hasta el mรกs alto.
- forEach(printjson) imprime cada documento en formato JSON legible.
Al ejecutar este comando, los documentos aparecen ordenados de menor a mayor segรบn el ID del empleado. El orden predeterminado es ascendente, por lo que dejar el valor en 1 garantiza un orden de menor a mayor en el campo seleccionado. Para invertir el resultado, simplemente cambie el valor de 1 a -1. Tambiรฉn puede usar la funciรณn limit() para obtener solo los primeros registros ordenados.
MongoDB Saltar() para paginaciรณn
El mรฉtodo skip() indica MongoDB Para ignorar un nรบmero determinado de documentos antes de devolver el resto. Por sรญ sola, skip() rara vez es รบtil, pero combinada con limit() crea paginaciรณn, lo que permite mostrar los resultados pรกgina por pรกgina.
El siguiente ejemplo omite a los dos primeros empleados y devuelve a los dos siguientes:
db.Employee.find().skip(2).limit(2).forEach(printjson)
Para crear una navegaciรณn pรกgina por pรกgina, siga este patrรณn:
- Decida el tamaรฑo de la pรกgina, por ejemplo, 2 documentos por pรกgina.
- Multiplica el tamaรฑo de la pรกgina por el nรบmero de pรกgina menos uno para obtener el valor de salto.
- Pasa ese valor a skip() y el tamaรฑo de pรกgina a limit().
Por ejemplo, la pรกgina 1 usa skip(0).limit(2), la pรกgina 2 usa skip(2).limit(2) y la pรกgina 3 usa skip(4).limit(2). Siempre agregue tambiรฉn un sort(), para que el orden de los documentos se mantenga estable en todas las pรกginas. Tenga en cuenta que los valores de skip muy grandes pueden ser lentos en colecciones grandes, porque MongoDB Sigue escaneando y descartando los documentos omitidos; la paginaciรณn basada en rangos es mรกs rรกpida a gran escala.
Ordenar por varios campos en MongoDB
MongoDB Puede ordenar por mรกs de un campo a la vez. Usted enumera los campos en el objeto de ordenaciรณn en orden de prioridad, y MongoDB ordena por el primer campo, luego usa el siguiente campo para desempatar, y asรญ sucesivamente.
El siguiente ejemplo ordena a los empleados por nombre en orden ascendente y, para los empleados con el mismo nombre, por Employeeid en orden descendente:
db.Employee.find().sort({EmployeeName:1, Employeeid:-1}).forEach(printjson)
El orden de las claves en el objeto de ordenaciรณn es importante: EmployeeName se aplica primero porque aparece primero. Esta ordenaciรณn por claves mรบltiples es รบtil para informes donde se agrupa por un campo y luego se clasifica dentro de cada grupo. Para obtener el mejor rendimiento en colecciones grandes, cree un รญndice compuesto que coincida con los campos y las direcciones utilizadas en la ordenaciรณn.


