Ordenación de MongoDB: método y ejemplos de sort()

Ordenación de MongoDB: método y ejemplos de sort()

  • Orquestación
6 min de lectura Actualizado Nov 26, 2020

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.

  1. MinKey (tipo interno)
  2. Nulo
  3. Números (ints, longs, doubles, decimales)
  4. Símbolo, cuerda
  5. Objetivo
  6. Matriz
  7. BinData
  8. ObjectId
  9. Booleano
  10. Fecha
  11. Marca temporal
  12. Expresión regular
  13. 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:

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:

Guía de MongoDB

  1. Resumen de MongoDB: Empezando con MongoDB
  2. Cómo instalar MongoDB en Ubuntu y Mac
  3. Creación de una base de datos en MongoDB
  4. Comandos básicos de MongoDB Shell
  5. MongoDB Compass: Uso de la interfaz gráfica de Mongo
  6. Explicación del Control de Acceso Basado en Roles (RBAC) de MongoDB
  7. Explicación de los operadores de proyección y proyección de MongoDB
  8. Explicación de las funciones agregadas de MongoDB
  9. Ordenación de MongoDB: método y ejemplos de sort()
  10. Uso de operadores de Push & Pull en MongoDB
  11. Cómo utiliza MongoDB $unwind
  12. 23 operadores comunes de consultas de MongoDB y cómo utilizarlos
  13. Ejemplos de consultas de geolocalización de MongoDB
  14. Introducción a las transacciones de MongoDB
  15. Índices de MongoDB: Principales tipos de índices y cómo gestionarlos
  16. Mejores comandos de MongoDB te necesitas saber
  17. Replicación de MongoDB: Una introducción completa
  18. Cómo configurar un clúster de MongoDB
  19. Fragmentos de MongoDB: Conceptos, Ejemplos y Tutoriales
  20. MongoDB Atlas: Configuración y uso de MongoDB gestionado
  21. Cómo ejecutar MongoDB como contenedor Docker
  22. Uso, gestión y requisitos de memoria de MongoDB
  23. Cómo utilizar Mongodump para copias de seguridad de MongoDB
  24. Ejemplos de Mongorestore para restaurar copias de seguridad de MongoDB
  25. Cómo utilizar PyMongo
  26. Cómo utilizar Mongoose para MongoDB y NodeJS
  27. Chuletas de MongoDB
  28. MongoDB vs Cassandra: Comparación de bases de datos NoSQL
  29. PostgreSQL vs MongoDB: Comparando bases de datos
  30. MySQL vs MongoDB: Comparando bases de datos
  31. Certificaciones MongoDB: Una introducción

Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.

Más de Orquestación

¿Te interesa saber más de BMC?

El Brief están nuestro correo mensual sobre el mainframe y la orquestación empresarial: investigación, historias de clientes, noticias de productos, eventos.

Al registrarse para esta oferta te son confirmar que te leído y aceptado la Política de Privacidad de BMC.

Tú te has suscrito a The Brief

El Brief abarca la orquestación de mainframe y empresa—BMC AMI y Control-M—y la investigación de analistas, despliegues de clientes y eventos en ambas áreas.