В данной статье мы рассмотрим, как отсортировать документы коллекции в MongoDB.
Метод sort()
Для сортировки документов коллекции в MongoDB предусмотрен метод sort(). Данный метод имеет следующий синтаксис:
db.ИМЯ_КОЛЛЕКЦИИ.find().sort( {АТРИБУТ: 1} )
Значение возле атрибута, указывает порядок сортировки. Для сортировки по возрастанию используется число ‘1’, для сортировки по убыванию – ‘-1’. По умолчанию документы сортируются по возрастанию.
Для понимания того, как это работает на практике, рассмотрим простой пример:
Предположим, что у нас есть коллекция developers, которая содержит следующие документы:
{
"_id" : ObjectId("5815f4e735ee883c37ac8b4d"),
"title" : "Eugene Suleimanov",
"specialty" : "Java",
"skills" : [
"Java",
"Hibernate",
"Spring"
],
"salary" : 3500
}
{
"_id" : ObjectId("5815f4ec35ee883c37ac8b4e"),
"title" : "Ivan Ivanov",
"specialty" : "Java",
"skills" : [
"Java",
"Hibernate",
"Spring"
],
"salary" : 3500
}
{
"_id" : ObjectId("5815f4f535ee883c37ac8b4f"),
"title" : "Nikolay Nikolaev",
"specialty" : "C++",
"skills" : [
"C++",
"STL",
"SQL"
],
"salary" : 3500
}
Допустим, что нам необходимо отсортировать документы данной коллекции по имени (по возрастанию).
Для этого нам необходимо использовать следующую команду:
> db.developers.find().pretty().sort( {"title": 1} )
{
"_id" : ObjectId("5815f4e735ee883c37ac8b4d"),
"title" : "Eugene Suleimanov",
"specialty" : "Java",
"skills" : [
"Java",
"Hibernate",
"Spring"
],
"salary" : 3500
}
{
"_id" : ObjectId("5815f4ec35ee883c37ac8b4e"),
"title" : "Ivan Ivanov",
"specialty" : "Java",
"skills" : [
"Java",
"Hibernate",
"Spring"
],
"salary" : 3500
}
{
"_id" : ObjectId("5815f4f535ee883c37ac8b4f"),
"title" : "Nikolay Nikolaev",
"specialty" : "C++",
"skills" : [
"C++",
"STL",
"SQL"
],
"salary" : 3500
}
Если же мы хотим отсортировать данные документы по имени по убыванию, то нам необходимо использовать следующую команду:
> db.developers.find().pretty().sort( {"title": -1} )
{
"_id" : ObjectId("5815f4f535ee883c37ac8b4f"),
"title" : "Nikolay Nikolaev",
"specialty" : "C++",
"skills" : [
"C++",
"STL",
"SQL"
],
"salary" : 3500
}
{
"_id" : ObjectId("5815f4ec35ee883c37ac8b4e"),
"title" : "Ivan Ivanov",
"specialty" : "Java",
"skills" : [
"Java",
"Hibernate",
"Spring"
],
"salary" : 3500
}
{
"_id" : ObjectId("5815f4e735ee883c37ac8b4d"),
"title" : "Eugene Suleimanov",
"specialty" : "Java",
"skills" : [
"Java",
"Hibernate",
"Spring"
],
"salary" : 3500
}
На этом мы заканчиваем изучение способа сортировки документов коллекции.
В следующей статье мы рассмотрим индексацию документов коллекции в MongoDB.