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
db.myCollection.find().sort({ age: 1 });
Ordenar por campo en orden descendente:
Ejemplo
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
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