Puntos clave: El método sort() de MongoDB organiza los datos en orden ascendente o descendente según campos especificados, mejorando la claridad y accesibilidad de las consultas. Soporta varios tipos de datos y puede combinarse con métodos como limit() y skip().
- El método sort() requiere parámetros para Define campos y orden.
- La ordenación puede aplicarse a campos individuales o múltiples para una mejor gestión de conjuntos de datos.
En este artículo, te mostraré cómo utilizar el método de ordenación de MongoDB en varios escenarios, incluyendo cómo utilizarlo junto con otros métodos para ordenar un conjunto de datos determinado.
Usar el método sort() aumentará la legibilidad de una consulta, lo que conduce a una mejor comprensión de un conjunto de datos dado. No solo eso, los desarrolladores utilizarán los datos ordenados para escribir algoritmos más complejos.
¿Qué es la ordenación de bases de datos?
La ordenación de bases de datos presenta los datos en orden ascendente o descendente en relación con los datos en un campo especificado. te puede realizar operaciones de ordenación sobre varios tipos de datos como:
- Cuerdas
- Enteros
- Decimal
- Etcétera.
La principal ventaja de la ordenación están que aumenta la legibilidad y uniformidad de los datos, lo que ayuda a los usuarios a comprender mejor el significado del conjunto de datos.
MongoDB sort()
En MongoDB, la ordenación se están realizadas mediante el método sort(). El método sort() consta de dos bloques básicos de construcción. Estos bloques de construcción son campos que deben ordenarse y el orden de ordenación.
El orden de ordenación en MongoDB está definido por uno (1) o un menos (-1). Aquí el positivo representa el orden ascendente, mientras que el negativo representa el orden descendente.
Sintaxis básica de MongoDB sort()
db.collection_name.find().sort({field_name: sort order})
Según la documentación oficial, MongoDB utiliza el siguiente orden al comparar valores de diferentes tipos de BSON de menor a mayor. (BSON significa Binary JSON format.)
Este están el formato de serialización utilizado en MongoDB para almacena documentos y Haz llamadas a procedimientos remotos. Cualquier campo inexistente en un documento son tratado como objetos nulos.
- MinKey (tipo interno)
- Nulo
- Números (ints, longs, doubles, decimales)
- Símbolo, cuerda
- Objetivo
- Matriz
- BinData
- ObjectId
- Booleano
- Fecha
- Marca temporal
- Expresión regular
- MaxKey (tipo interno)
Los siguientes ejemplos demostrarán las diferencias entre una consulta de búsqueda MongoDB no ordenada y una ordenada. Para este ejemplo, usaremos la colección "vehicleinformation".
Datos de recopilación de "VehicleInformation"
Colección sin ordenar
Cuando están se realiza una consulta de búsqueda con el método find(), el comportamiento por defecto están devolver la salida sin ordenar. El operador {_id:0} están utiliza para eliminar el ID del documento y obtener una salida más sencilla.
Resultados en:
Colección ordenada
db.vehicleinformation.find({},{_id:0})
Resultados en:
Para Obtén un resultado ordenado, añadimos el método sort() al final de la consulta de búsqueda (método find()). Esto permite al usuario generar una salida ordenada.
En este caso, los datos están ordenados por el campo "año" en orden ascendente.
Resultados en:
db.vehicleinformation.find({},{_id:0}).sort({"year":1})
Resultados en:
Si te no aportan argumentos al método sort(), la colección no se ordenará y la salida resultante estará en el orden predeterminado—que están el orden en que Mongo encuentra los resultados.
Resultado:
db.vehicleinformation.find({},{_id:0}).sort({})<.pre>
Resultado:
Uso del método sort() de MongoDB
Esta sección cubrirá cómo el método sort() puede usarse para realizar diferentes operaciones de ordenación. Salta a la opción de Ordenar te necesita:
- En orden ascendente
- En orden descendente
- Con múltiples campos
- Con el método limit()
- Con el método skip()
- Metadatos
- Con un índice
Ordenación en orden ascendente
En este ejemplo, utilizo el campo de texto "Haz" para obtener los resultados en orden ascendente. El operador uno ({"Haz":1}) se está usado para indicar el orden ascendente, y la proyección de MongoDB se está empleada para filtrar todos los demás campos excepto el campo "Haz".
Resultado:
db.vehicleinformation.find({},{make:1,_id:0}).sort({"make":1})
Resultado:
Ordenación en orden descendente
Este ejemplo está igual que el anterior con una diferencia, que está usando menos uno ({"Haz":-1}) para indicar el orden descendente.
Resultado:
db.vehicleinformation.find({},{make:1,_id:0}).sort({"make":-1})
Resultado:
Ordenación usando múltiples campos
Al ordenar múltiples campos, te debe declarar campos para ordenar dentro del método sort(). La consulta se ordenará según la posición de declaración de los campos, donde el orden de ordenación están evaluado de izquierda a derecha. Para demostrarlo, utilizaremos la colección "vehiclesales".
Colección "Vehículos Sales"
Resultado:
db.vehiclesales.find({},{_id:0})
Resultado:
El siguiente ejemplo mostrará cómo ordenar usando los campos "Haz" y "price". Los datos primero se están ordenados por "Haz" como primer argumento, y luego el conjunto de datos se ordenará aún más por el campo "precio".
Resultado:
db.vehiclesales.find({},{_id:0}).sort({"make":1,"price":1})
Resultado:
Como se muestra arriba, los datos primero se están ordenados por el campo Haz. Como son múltiples documentos con la misma Haz "Audi", los datos se ordenan de nuevo por el campo precio en orden ascendente, resultando en la salida anterior.
Ordenación con el método limit()
El método orden() puede usarse junto con el método limit() que limita el número de resultados en la consulta de búsqueda. te debe pasar un entero al método limit(), que luego especifica el número de documentos a los que debe limitarse el conjunto de resultados.
Los siguientes ejemplos utilizan la colección "vehicleinformation", mientras que el resultado está limitado a dos documentos y ordenado tanto por orden ascendente como descendente.
Resultado:
Resultados en:
db.vehicleinformation.find({},{_id:0}).sort({"make":1,"year":1}).limit(2).pretty()
Resultado:
db.vehicleinformation.find({},{_id:0}).sort({"make":-1,"year":-1}).limit(2).pretty()
Resultados en:
Ordenar con el método skip()
Te también puedes utilizar el método skip() con el método sort(). El método skip() permite al usuario saltarse un número específico de documentos del conjunto de datos resultante.
En el siguiente ejemplo, te Ve que los primeros cuatro documentos se son saltados mientras se ordenan por año en orden ascendente.
Resultado:
db.vehicleinformation.find({},{_id:0}).sort({"year":1}).skip(4).pretty()
Resultado:
Ordenamiento de metadatos
El método sort() puede usarse para ordenar los valores de metadatos de un campo de metadatos calculado.
El siguiente ejemplo utilizó la colección "food" para demostrar cómo se pueden ordenar documentos usando los metadatos "textScore." El nombre del campo en el método sort() puede ser arbitrario, ya que el sistema de consultas ignora el nombre del campo.
Colección de "Comida"
Resultado:
Resultado:
db.food.find({},{_id:0})
Resultado:
db.food.find({$text:{$search: "pizza"}}, {score:{$meta: "textScore"}, _id: 0}).sort({sort_example:{$meta: "textScore"}})
Resultado:
En esta consulta, hemos especificado el campo de ordenación como "sort_example". Sin embargo, esto están ignorado al son ordenar metadatos. Además, como son ordenar usando metadatos "textScore", el conjunto de datos resultante están ordenado en orden descendente.
Ordenación con un índice
MongoDB puede realizar operaciones de ordenamiento sobre un índice de un solo campo en orden ascendente o descendente. En índices compuestos, el orden de ordenamiento determina si el índice puede ordenarse. Las claves de ordenación deben listarse en el mismo orden que se define en el índice.
Por ejemplo, el índice compuesto {Haz: 1, year: 1} puede ordenarse usando "sort({Haz: 1, year: 1})" pero no en "sort({year: 1, Haz: 1})". Ordenar usando un índice ayuda a Reduce los requisitos de recursos al realizar la consulta.
Usando la colección "vehicleslaes", Define un índice llamado "make_index"
Resultado:
db.vehiclesales.find({},{_id:0}).sort({make_index: 1})
Resultado:
Aquí, el índice "make_index" están utiliza para ordenar los documentos. Para identificar qué índice están utilizado, añadimos el método explicación() al final de la consulta, lo que dará lugar a la siguiente salida. A partir de la salida, podemos identificar que el "make_index" están utilizado para obtener los documentos relevantes.
Resultado:
db.vehiclesales.find({},{_id:0}).sort({make: 1}).explain()
Resultado:
Finalmente, la consulta se están ejecutada sin el método explicación() para obtener la salida.
Resultado:
db.vehiclesales.find({},{_id:0}).sort({make: 1})
Resultado:
Eso es todo nuestro tutorial de ordenación de MongoDB.
Lecturas relacionadas
Guía de MongoDB
- Resumen de MongoDB: Empezando con MongoDB
- Cómo instalar MongoDB en Ubuntu y Mac
- Creación de una base de datos en MongoDB
- Comandos básicos de MongoDB Shell
- MongoDB Compass: Uso de la interfaz gráfica de Mongo
- Explicación del Control de Acceso Basado en Roles (RBAC) de MongoDB
- Explicación de los operadores de proyección y proyección de MongoDB
- Explicación de las funciones agregadas de MongoDB
- Ordenación de MongoDB: método y ejemplos de sort()
- Uso de operadores de Push & Pull en MongoDB
- Cómo utiliza MongoDB $unwind
- 23 operadores comunes de consultas de MongoDB y cómo utilizarlos
- Ejemplos de consultas de geolocalización de MongoDB
- Introducción a las transacciones de MongoDB
- Índices de MongoDB: Principales tipos de índices y cómo gestionarlos
- Mejores comandos de MongoDB te necesitas saber
- Replicación de MongoDB: Una introducción completa
- Cómo configurar un clúster de MongoDB
- Fragmentos de MongoDB: Conceptos, Ejemplos y Tutoriales
- MongoDB Atlas: Configuración y uso de MongoDB gestionado
- Cómo ejecutar MongoDB como contenedor Docker
- Uso, gestión y requisitos de memoria de MongoDB
- Cómo utilizar Mongodump para copias de seguridad de MongoDB
- Ejemplos de Mongorestore para restaurar copias de seguridad de MongoDB
- Cómo utilizar PyMongo
- Cómo utilizar Mongoose para MongoDB y NodeJS
- Chuletas de MongoDB
- MongoDB vs Cassandra: Comparación de bases de datos NoSQL
- PostgreSQL vs MongoDB: Comparando bases de datos
- MySQL vs MongoDB: Comparando bases de datos
- Certificaciones MongoDB: Una introducción
Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.