Ordenación de MongoDB

En MongoDB, se utiliza el método sort() para ordenar los datos. El método sort() puede especificar el campo de ordenación mediante parámetros, y usar 1 y -1 para especificar el modo de ordenación, donde 1 es para orden ascendente, y -1 es para orden descendente.

Sintaxis

La sintaxis básica del método sort() es la siguiente:

db.collection.find().sort({ field1: 1, field2: -1 })
  • { field1: 1, field2: -1 }: especifica el campo a ordenar y el orden de clasificación. 1 indica ascendente, -1 indica descendente.

Ejemplo

Ordenar por campo en orden ascendente:

Ejemplo

// Ordenar por el campo age en orden ascendente
db.myCollection.find().sort({ age: 1 });

Ordenar por campo en orden descendente:

Ejemplo

// Ordenar por el campo createdAt en orden descendente
db.myCollection.find().sort({ createdAt: -1 });

Se pueden especificar varios campos para ordenar; MongoDB ordenará secuencialmente según el orden de los campos especificados.

Ejemplo

// Ordenar primero por el campo age en orden ascendente, luego por el campo createdAt en orden descendente
db.myCollection.find().sort({ age: 1, createdAt: -1 });

Los datos en la colección col son los siguientes:

{ "_id" : ObjectId("56066542ade2f21f36b0313a"), "title" : "PHP 教程", "description" : "PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。", "by" : "Ejemplo", "url" : "http://www.example.com", "tags" : [ "php" ], "likes" : 200 }
{ "_id" : ObjectId("56066549ade2f21f36b0313b"), "title" : "Java 教程", "description" : "Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。", "by" : "Ejemplo", "url" : "http://www.example.com", "tags" : [ "java" ], "likes" : 150 }
{ "_id" : ObjectId("5606654fade2f21f36b0313c"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "Ejemplo", "url" : "http://www.example.com", "tags" : [ "mongodb" ], "likes" : 100 }

El siguiente ejemplo demuestra la ordenación de los datos en la colección col por el campo likes en orden descendente:

>db.col.find({},{"title":1,_id:0}).sort({"likes":-1})
{ "title" : "PHP 教程" }
{ "title" : "Java 教程" }
{ "title" : "MongoDB 教程" }
>

Notas

  • MongoDB ordena los resultados de la consulta al realizar la ordenación, por lo que puede afectar el rendimiento, especialmente en conjuntos de datos grandes donde la operación de ordenación puede ser más lenta.
  • Si hay un índice en el campo de ordenación, la operación de ordenación puede ser más eficiente. Al realizar operaciones de ordenación frecuentes, se puede considerar crear índices apropiados para mejorar el rendimiento.

Mediante el uso del método sort(), puede ordenar convenientemente los resultados de las consultas de MongoDB para satisfacer diferentes necesidades de ordenación y organizar los documentos en orden ascendente o descendente según sea necesario.

Otras extensiones