Резултати от заявка за сортиране на MongoDB

Rezultati Ot Zaavka Za Sortirane Na Mongodb



Почти всички системи за бази данни приоритизират сортирането на данни, преди да бъдат извлечени, което ги отличава от другите методи за съхранение на данни. MongoDB също има различни начини да определи как да сортира данните. Най-често използваме метода sort(), за да определим последователността, в която се появява документът. Редът на последователността се предава като параметър на метода sort(). Едно или повече полета, които съставляват метода sort(), често са последвани от стойност „1“ или „-1“. Методът sort() прави заявката по-четима, което подобрява разбирането на определена колекция.

Как MongoDB сортира резултатите от заявката?

Методът за сортиране приема полето и свързаната с него стойност като един параметър. Методът за сортиране приема параметри във формат JSON като {Field: Value}. Множеството полета и стойности също могат да бъдат въведени в метода sort(), за да получите сортираните документи от колекцията. Помислете за следния документ, в който сме вмъкнали много други документи в нашата база данни. Името на тази база данни MongoDB е озаглавено „Служители“. Колекцията „Служители“ съдържа цялата информация за служителите, показана по-долу.

db.Employees.insertMany([
{
'име': 'Робърт',
'DOB': '14-05-1993',
'Пол Мъж',
'електронна поща': ' [имейл защитен] ',
'отдел': 'Сигурност',
'заплата': 5000
},
{
'име': 'кайл',
'DOB': '31-05-1999',
'женски пол',
'електронна поща': ' [имейл защитен] ',
'отдел': 'ИТ',
'заплата': 6200
},
{
'име': 'Матей',
'DOB': '26-04-1993',
'Пол Мъж',
'електронна поща': ' [имейл защитен] ',
'отдел': 'Сметки',
'заплата' : 3500
},
{
'име': 'Кевин',
'ДОБ': '14-07-1991',
'Пол Мъж',
'електронна поща': ' [имейл защитен] ',
'department': 'Сигурност',
'заплата' : 4500
},

{
'име': 'Джулия',
'DOB': '09-12-2000',
'женски пол',
'електронна поща': ' [имейл защитен] ',
'отдел': 'ИТ',
'заплата': 2500
}
])

Колекцията „Служител“ се вмъква с предоставените документи, чието потвърждение е показано в следния изход. Ще използваме този документ за събиране, за да покажем функционалността на резултатите от заявката за сортиране.









Пример # 1: MongoDB несортирана колекция

Когато заявката за търсене се изпълнява с метода find(), тя винаги дава несортирана колекция от документи. Това може да бъде по-ясно с резултатите от заявката, предоставени по-долу.



>db.Employees.find({},{_id:0})

Тук имаме заявка към колекцията „Служител“ с метода find(). Методът find() взема празния параметър заедно с „_id:0“. За по-опростен резултат идентификаторът на документа се премахва с помощта на оператора „_id:0“. По подразбиране получаваме несортирани колекции, когато заявката се търси с метода find(). Резултатът, извлечен по-долу, е всички несортирани документи по начин, който имаме в момента на вмъкване.





Пример # 2: MongoDB Сортиране на резултати от заявка във възходящ ред

Сортираната колекция в MongoDB се получава чрез използване на метода sort(), който трябва да бъде поставен след метода find(). Методът sort() в MongoDB приема параметъра, който е включен в името на полето и реда на сортиране на документа. Трябва да въведем „1“ като параметър в полето, тъй като ще извличаме документите във възходящ ред в този конкретен пример. Следното в заявката за сортиране води във възходящ ред.



>db.Employees.find().sort({име:1})

Тук сме използвали метода sort() след заявката за търсене. Методът sort() се използва за сортиране на полето „име“ във възходящ ред, тъй като стойността „1“ се поставя до указаното поле. Имайте предвид, че ако методът sort() не е определен с параметрична стойност, колекцията няма да бъде сортирана. Резултатът от метода sort() ще бъде получен в реда по подразбиране. Резултатите от метода sort() по полето за име във възходящ ред се показват в следната обвивка на MongoDB.

Пример # 3: MongoDB Сортиране на резултати от заявка в низходящ ред

Сега показваме резултатите от заявката за сортиране на MongoDB в низходящ ред. Този вид заявка е същата като горния пример, но с една разлика. За низходящ ред методът sort() приема стойността „-1“ срещу името на колоната. Резултатите от заявката за сортиране в низходящ ред са дадени по-долу.

>db.Employees.find({},{'email':1,_id:0}).sort({'email':-1})

Тук заявката за търсене започва с метода find(), който намира полето „имейл“ и връща само стойностите на полето „имейл“. След това посочихме метода sort(), който се използва за сортиране на полето „имейл“, а стойността „-1“ до него показва, че получените резултати от сортирането ще бъдат в низходящ ред. Резултатите от заявката за сортиране в низходящ ред се извличат след изпълнението й в обвивката на MongoDB.

Пример # 4: Резултати от заявка за сортиране на MongoDB за множество полета

Можем да сортираме множеството полета в MongoDB с метода sort(). Полетата за сортиране трябва да бъдат декларирани в метода sort(). Сортирането се основава на реда на деклариране на полетата и редът на сортиране се разглежда отляво надясно. Заявката за сортиране на множество полета трябва да изглежда така:

>db.Employees.find({},{_id:0}).sort({'име':1,'заплата':1})

Тук методът sort() се предава с полетата „име“ и „заплата“, които трябва да бъдат сортирани. Полето „име“ от колекцията „Служител“ се сортира първо, защото е първото аргументно поле на метода sort(). След това методът sort() сортира второто аргументно поле „заплата“. Редът на двете полета е „1“, което показва, че сортирането ще бъде във възходящ ред. Резултатът за множество полета на заявка за сортиране се генерира в указания ред на сортиране по-долу.

Пример # 5: MongoDB сортиране на резултати от заявка с метод на ограничение

Освен това методът sort() може също да се комбинира с метода limit(), който дава ограничения брой на сортираните документи по тази заявка за търсене. Методът limit() изисква цяло число като параметър, което ограничава броя на документите, които трябва да бъдат включени в изходния набор. Заявката за търсене е зададена по-долу, която първо сортира документа и след това предоставя посочените ограничени документи.

>db.Employees.find({},{_id:0}).sort({'department':1,'DOB':1}).limit(4).pretty()

Тук имаме заявката за търсене, която започва операцията за сортиране за колоната „department“ и след това за колоната „DOB“ във възходящ ред чрез използване на метода sort(). След като сортирането е извършено, ние сме поставили метода limit() до него за извличане на ограничения документ. Методът limit() получава числова стойност „4“, което означава, че показва само четири сортирани документа към изхода, както е показано на следния екран:

Пример # 6: Резултати от заявка за сортиране на MongoDB с агрегиране на $sort

Във всички примери по-горе извършихме сортирането чрез метода sort() на MongoDB. Има друг начин за сортиране в MongoDB, който се постига чрез агрегацията $sort. Операторът $sort сортира всички входни документи, които след това връщат сортираните документи в конвейера. Операторът $sort се прилага към колекцията „Служители“ по-долу.

db.Employees.aggregate([ { $sort : { salary : 1, _id: -1 } } ])

Тук извикахме обобщения метод, в който можем да използваме оператора „$sort“. След това имаме операторния израз $sort, който сортира колоната „заплата“ във възходящ ред и колоната „id“ в низходящ ред. Агрегацията $sort, приложена към полето, извежда следните резултати:

Пример # 6: MongoDB сортиране на резултати от заявка с метод за пропускане

Методът sort() също може да бъде съчетан с метода skip(). Полученият набор от данни може да има определен брой документи, които ще бъдат игнорирани чрез метода skip(). Подобно на метода limit(), методът skip() също приема числова стойност, която показва броя на документите, които трябва да бъдат пропуснати. Комбинирахме метода sort() с метода skip() в заявката за сортиране.

>db.Employees.find({},{_id:0}).sort({'salary':1}).skip(4).pretty()

Тук сме използвали метода skip() до метода sort(). Когато методът sort() сортира документите, той предава изхода за сортиране на метода sort(). След това методът skip() премахна първите четири сортирани документа от колекцията.

Заключение

Статията е за резултатите от заявката за сортиране в MongoDB. За тази цел сме използвали метода sort(), който организира записите в определена последователност. Също така използвахме метода sort() за многократно сортиране в няколко полета. След това методът sort() се свързва с методите limit() и skip() към сортираните документи, използващи тези операции. Освен това сме предоставили агрегацията $sort за резултати от заявка за сортиране в MongoDB.