Руководство по MongoDB. Сортировка документов.

В данной статье мы рассмотрим, как отсортировать документы коллекции в 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.