Сортировка MongoDB
В MongoDB для сортировки данных используйте метод sort(). Метод sort() может через параметры указывать поле для сортировки и использовать 1 и -1 для указания порядка сортировки, где 1 — по возрастанию, а -1 — по убыванию.
Синтаксис
Базовый синтаксис метода sort() выглядит следующим образом:
db.collection.find().sort({ field1: 1, field2: -1 })
{ field1: 1, field2: -1 }: укажите поле для сортировки и порядок сортировки. 1 означает сортировку по возрастанию, -1 — по убыванию.
Пример
Сортировка по полю по возрастанию:
Пример
db.myCollection.find().sort({ age: 1 });
Сортировка по полю по убыванию:
Пример
db.myCollection.find().sort({ createdAt: -1 });
Вы можете выполнять сортировку, и MongoDB будет сортировать в соответствии с указанным порядком полей.
Пример
db.myCollection.find().sort({ age: 1, createdAt: -1 });
Данные в коллекции col выглядят следующим образом:
{ "_id" : ObjectId("56066542ade2f21f36b0313a"), "title" : "PHP 教程", "description" : "PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。", "by" : "Example", "url" : "http://www.example.com", "tags" : [ "php" ], "likes" : 200 }
{ "_id" : ObjectId("56066549ade2f21f36b0313b"), "title" : "Java 教程", "description" : "Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。", "by" : "Example", "url" : "http://www.example.com", "tags" : [ "java" ], "likes" : 150 }
{ "_id" : ObjectId("5606654fade2f21f36b0313c"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "Example", "url" : "http://www.example.com", "tags" : [ "mongodb" ], "likes" : 100 }
В следующем примере показаны данные в коллекции col, отсортированные по полю likes в порядке убывания:
>db.col.find({},{"title":1,_id:0}).sort({"likes":-1})
{ "title" : "PHP 教程" }
{ "title" : "Java 教程" }
{ "title" : "MongoDB 教程" }
>
Примечания
- MongoDB сортирует результаты запроса при выполнении сортировки, что может повлиять на производительность, особенно на больших наборах данных, где операции сортировки могут быть медленнее
- Если для поля сортировки есть индекс, операции сортировки могут быть более эффективными. При выполнении частых операций сортировки рассмотрите создание подходящих индексов для повышения производительности.
Используя метод sort(), вы можете удобно сортировать результаты запросов MongoDB для удовлетворения различных потребностей сортировки и упорядочивать документы по возрастанию или убыванию по мере необходимости.
Другие расширения