Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Query Modifiers

$orderby

$orderby

Nota

Obsoleto desde la v3.2

A partir de la v3.2, el operador $orderby está obsoleto en mongosh. En mongosh, utiliza cursor.sort() en su lugar.

El operador $orderby ordena los resultados de una query en orden ascendente o descendente.

mongosh proporciona el método cursor.sort():

db.collection.find().sort( { age: -1 } )

También puedes especificar la opción en cualquiera de las formas siguientes:

db.collection.find()._addSpecial( "$orderby", { age : -1 } )
db.collection.find( { $query: {}, $orderby: { age : -1 } } )

Estos ejemplos devuelven todos los documentos de la colección collection ordenados por el age campo en orden descendente. Especifique un valor de $orderby o menos uno (p. ej.,, como se indicó-1 anteriormente) para ordenar en orden descendente o un valor positivo (p. ej.,)1 para ordenar en orden ascendente.

Dado que los índices contienen registros ordenados, MongoDB puede obtener los resultados de una ordenación a partir de un índice que incluya los campos de ordenación. MongoDB puede usar múltiples índices para una ordenación si esta utiliza los mismos índices que el predicado de consulta.

Si MongoDB no puede utilizar un índice o índices para obtener el orden de clasificación, MongoDB debe realizar una operación de ordenamiento bloqueante en los datos. Un ordenamiento bloqueante indica que MongoDB debe consumir y procesar todos los documentos de entrada para el ordenamiento antes de devolver los resultados. Los ordenamientos bloqueantes no bloquean operaciones concurrentes en la colección o la base de datos.

Las operaciones de ordenamiento que utilizan un índice a menudo tienen mejor rendimiento que los ordenamientos bloqueantes. Para obtener más información sobre cómo crear índices para soportar operaciones de ordenación, consulta Uso de índices para ordenar resultados de queries.

Si MongoDB requiere utilizar más de 100 megabytes de memoria del sistema para la operación de ordenamiento bloqueante, MongoDB devuelve un error a menos que la query especifique cursor.allowDiskUse() (Novedad en MongoDB 4.4). allowDiskUse() permite que MongoDB use archivos temporales en disco para almacenar datos que superen el límite de 100 megabytes de memoria del sistema al procesar una operación de ordenamiento bloqueante.

Para evitar este error, crea un índice para soportar la operación de ordenamiento o utiliza $orderby en conjunto con cursor.maxTimeMS() y/o cursor.limit(). La cursor.limit() aumenta la velocidad y reduce la cantidad de memoria necesaria para devolver esta query mediante un algoritmo optimizado. El límite especificado debe resultar en un número de documentos que estén dentro del límite de 100 megabytes.

Volver

$min

En esta página