MongoDB Sort: establecer el orden de una salida de datos
Con MongoDB Sort puedes ordenar los documentos según ciertos criterios. La salida puede ser tanto en orden ascendente como en orden descendente.
¿Qué es MongoDB Sort?
Utiliza el sistema gestor de bases de datos conocido como MongoDB para almacenar datos en forma de documentos en bases de datos. El comando MongoDB Create Database te servirá para crear una. Para una mejor visión de conjunto y un orden lógico, los archivos también pueden agruparse y ser indexados en colecciones. El objetivo de este sistema no es solo almacenar los datos, sino también conseguir que estén disponibles en cualquier momento. Para optimizar la salida de los datos, el sistema nos ofrece la función MongoDB Sort. Esta función permite alterar el orden de visualización de los documentos, lo cual hace que los listados y las consultas sean aún más rápidos y eficaces.
Puedes encontrar muchos más comandos en nuestro resumen de comandos de MongoDB.
Sintaxis y funcionamiento de MongoDB Sort
Al igual que MongoDB Find, MongoDB Sort es una función que utilizarás con frecuencia cuando trabajes con bases de datos. También se pueden combinar las dos. La sintaxis básica es la siguiente:
db.collection_name.find().sort({field_name: sort_order})
Además del propio comando MongoDB Sort, que debe contener el nombre de la colección, hay otro parámetro. Dicho parámetro es un documento y determina el criterio por el que el sistema debe ordenar los documentos. También se determina la disposición de la clasificación ajustando el parámetro sort_order: El valor 1 representa una disposición ascendente y -1 establece una disposición descendente. Si no se define este valor, MongoDB Sort mostrará los documentos automáticamente en orden ascendente.
Ejemplos para MongoDB Sort
Descubre algunos ejemplos sencillos que te serán útiles para entender MongoDB Sort y sus diversos usos de mejor manera. Para ello, imagina una lista de clientes que, por comodidad, tiene tres entradas registradas y contiene información sobre el nombre del cliente y el número de pedidos. Así se mostraría la lista sin orden alguno:
>db.lista_de_clientes.find()
{ _id : ObjectID ( "409f288c184f9132cd772c1" ), "name" : "García", "purchases" : 4 },
{ _id : ObjectID ( "409f288c184f9132cd772c2" ), "name" : "Balaguer", "purchases" : 1 },
{ _id : ObjectID ( "409f288c184f9132cd772c3" ), "name" : "Martínez", "purchases" : 2 }
>
Ordenar por nombre
Utiliza MongoDB Sort para mostrar la lista de clientes por orden alfabético. En nuestro ejemplo tendría el siguiente aspecto:
>db.lista_de_clientes.find().sort({name : 1})
{ _id : ObjectID ( "409f288c184f9132cd772c3" ), "name" : "Balaguer", "purchases" : 1 },
{ _id : ObjectID ( "409f288c184f9132cd772c1" ), "name" : "García", "purchases" : 4 },
{ _id : ObjectID ( "409f288c184f9132cd772c2" ), "name" : "Martínez", "purchases" : 2 }
>
Utiliza MongoDB Sort de la siguiente manera para mostrar los nombres en orden alfabético descendente:
>db.lista_de_clientes.find().sort({name : -1})
{ _id : ObjectID ( "409f288c184f9132cd772c2" ), "name" : "Martínez", "purchases" : 2 },
{ _id : ObjectID ( "409f288c184f9132cd772c1" ), "name" : "García", "purchases" : 4 },
{ _id : ObjectID ( "409f288c184f9132cd772c3" ), "name" : "Balaguer", "purchases" : 1 }
>
Ordenar por pedidos
Si quieres ordenar tus clientes por la cantidad de pedidos que han hecho, empezando por los que más pedidos han hecho, utiliza MongoDB Sort de la siguiente manera:
>db.lista_de_clientes.find().sort({purchases : -1})
{ _id : ObjectID ( "409f288c184f9132cd772c3" ), "name" : "García", "purchases" : 4 },
{ _id : ObjectID ( "409f288c184f9132cd772c1" ), "name" : "Martínez", "purchases" : 2 },
{ _id : ObjectID ( "409f288c184f9132cd772c2" ), "name" : "Balaguer", "purchases" : 1 }
>