Резултати упита за сортирање МонгоДБ

Rezultati Upita Za Sortirane Mongodb



Скоро сви системи база података дају приоритет сортирању података пре него што буду преузети, што их издваја од других метода складиштења података. МонгоДБ такође има различите начине да одреди како сортирати податке. Углавном користимо метод сорт() да бисмо одредили редослед у коме се документ појављује. Редослед секвенце се прослеђује као параметар методи сорт(). Једно или више поља која сачињавају методу сорт() често су праћени или вредношћу „1“ или „-1“. Метода сорт() чини упит читљивијим, што побољшава разумевање одређене колекције.

Како МонгоДБ сортира резултате упита?

Метода сортирања узима поље и његову придружену вредност као један параметар. Метода сортирања прихвата параметре у ЈСОН формату као што је {Фиелд: Валуе}. Вишеструка поља и вредности се такође могу унети у методу сорт() да бисте добили сортиране документе из колекције. Размотрите следећи документ у коме смо убацили многе друге документе у нашу базу података. Назив ове МонгоДБ базе података је насловљен „Запослени“. Колекција „Запослени“ садржи све информације о запосленима приказане у наставку.

дб.Емплоиеес.инсертМани([
{
'име': 'Роберт',
'ДОБ': '14-05-1993',
'пол мушки',
'е-пошта': ' [е-маил заштићен] ',
'одељење': 'Безбедност',
'плата': 5000
},
{
'наме': 'киле',
'ДОБ': '31-05-1999',
'Женско',
'е-пошта': ' [е-маил заштићен] ',
'одељење': 'ИТ',
'плата': 6200
},
{
'име': 'Матеј',
'ДОБ': '26-04-1993',
'пол мушки',
'е-пошта': ' [е-маил заштићен] ',
'одељење': 'Рачуни',
'плата': 3500
},
{
'име': 'Кевин',
'ДОБ': '14-07-1991',
'пол мушки',
'е-пошта': ' [е-маил заштићен] ',
'одељење': 'Безбедност',
'плата': 4500
},

{
'име': 'Јулија',
'ДОБ': '09-12-2000',
'Женско',
'е-пошта': ' [е-маил заштићен] ',
'одељење': 'ИТ',
'плата': 2500
}
])

Колекција „Запослени“ се убацује са приложеним документима чија је потврда приказана у следећем излазу. Користићемо овај документ колекције за приказ функционалности резултата упита за сортирање.









Пример # 1: МонгоДБ неразврстана колекција

Када се упит за претрагу извршава методом финд(), увек даје неразврстану колекцију докумената. Ово може бити јасније са доле наведеним резултатима упита.



>дб.Емплоиеес.финд({},{_ид:0})

Овде имамо упит за колекцију „Емплоиее“ са методом финд(). Метод финд() узима празан параметар заједно са „_ид:0“. За једноставнији резултат, ИД документа се уклања помоћу оператора „_ид:0“. Подразумевано, добијамо несортиране колекције када се упит претражује методом финд(). Исход који се налази испод су сви несортирани документи на начин који имамо у тренутку уметања.





Пример # 2: Резултати упита за сортирање МонгоДБ у растућем редоследу

Сортирана колекција у МонгоДБ-у се добија коришћењем методе сорт() коју треба поставити иза методе финд(). Метода сорт() у МонгоДБ-у узима параметар који је укључен у име поља и редослед сортирања документа. Морамо да унесемо „1“ као параметар у поље јер ћемо у овом конкретном примеру преузимати документе узлазним редоследом. Следеће у упиту за сортирање резултира узлазним редоследом.



>дб.Емплоиеес.финд().сорт({наме:1})

Овде смо користили метод сорт() након упита за претрагу. Метода сорт() се користи за сортирање поља „наме“ узлазним редоследом пошто се вредност „1“ поставља поред наведеног поља. Имајте на уму да ако метод сорт() није специфициран ни са једном параметарском вредношћу онда колекција неће бити сортирана. Излаз из методе сорт() биће добијен у подразумеваном редоследу. Резултати методе сорт() по пољу имена у растућем редоследу су приказани у следећој љусци МонгоДБ.

Пример # 3: Резултати упита за сортирање МонгоДБ у опадајућем редоследу

Сада приказујемо резултате упита сортирања МонгоДБ-а у опадајућем редоследу. Ова врста упита је иста као у горњем примеру, али са једном разликом. За опадајући редослед, метода сорт() узима вредност „-1” у односу на име колоне. Резултати упита за сортирање у опадајућем редоследу су дати у наставку.

>дб.Емплоиеес.финд({},{'емаил':1,_ид:0}).сорт({'емаил':-1})

Овде, упит за претрагу почиње методом финд() која проналази поље „е-пошта” и враћа само вредности поља „е-пошта”. Затим смо навели метод сорт() који се користи за сортирање поља „е-пошта“, а вредност „-1“ поред њега означава да ће добијени резултати сортирања бити у опадајућем редоследу. Резултати упита за сортирање по опадајућем редоследу се преузимају након што се изврше у љусци МонгоДБ.

Пример # 4: Резултати упита за сортирање МонгоДБ-а за више поља

Можемо сортирати више поља у МонгоДБ методом сорт(). Поља која се сортирају треба да буду декларисана у методи сорт(). Сортирање је засновано на декларативном редоследу поља, а редослед сортирања се испитује с лева на десно. Упит за сортирање више поља би требало да изгледа овако:

>дб.Емплоиеес.финд({},{_ид:0}).сорт({'наме':1,'салари':1})

Овде се прослеђује метода сорт() са пољима „име“ и „плате“ које треба сортирати. Поље „наме“ из колекције „Емплоиее“ се прво сортира јер је то прво поље аргумента методе сорт(). Затим, метода сорт() сортира поље другог аргумента „плата“. Редослед оба поља је „1“ што указује да ће сортирање бити у растућем редоследу. Излаз за више поља упита за сортирање се генерише у наведеном редоследу сортирања испод.

Пример # 5: Резултати упита за сортирање МонгоДБ-а са методом ограничења

Штавише, метода сорт() такође може да се комбинује са методом лимит() која даје ограничен број сортираних докумената према том упиту за претрагу. Метода лимит() захтева цео број као параметар, који ограничава број докумената који треба да буду укључени у излазни скуп. Испод је постављен упит за претрагу који прво сортира документ, а затим даје наведене документе ограничења.

>дб.Емплоиеес.финд({},{_ид:0}).сорт({'департмент':1,'ДОБ':1}).лимит(4).претти()

Овде имамо упит за претрагу који започиње операцију сортирања за колону „департмент“, а затим за колону „ДОБ“ у растућем редоследу коришћењем методе сорт(). Када се сортирање заврши, поред њега смо поставили метод лимит() за преузимање ограниченог документа. Методи лимит() је дата нумеричка вредност „4“ што значи да на излазу приказује само четири сортирана документа као што је приказано на следећем екрану:

Пример # 6: Резултати упита за сортирање МонгоДБ-а са $сорт агрегацијом

У свим горњим примерима извршили смо сортирање путем сорт() методе МонгоДБ-а. Постоји још један начин сортирања у МонгоДБ-у који се постиже путем $сорт агрегације. Оператор $сорт сортира све улазне документе који затим враћа сортиране документе у цевовод. Оператор $сорт се примењује на колекцију „Запослени“ у наставку.

дб.Емплоиеес.аггрегате([ { $сорт : { плата : 1, _ид: -1 } } ])

Овде смо позвали агрегатну методу унутар које можемо да користимо оператор „$сорт“. Затим имамо израз оператора $сорт који сортира колону „плата“ у растућем редоследу и колону „ид“ у опадајућем редоследу. $сорт агрегација примењена на поље даје следеће резултате:

Пример # 6: Резултати упита за сортирање МонгоДБ-а са методом прескакања

Метода сорт() такође може бити упарена са методом скип(). Резултирајући скуп података може имати одређени број докумената који ће бити занемарени коришћењем методе скип(). Као и лимит(), метода скип() такође прихвата нумеричку вредност која означава број докумената које треба прескочити. Комбиновали смо метод сорт() са методом скип() у упиту за сортирање.

>дб.Емплоиеес.финд({},{_ид:0}).сорт({'плата':1}).скип(4).претти()

Овде смо користили метод скип() поред методе сорт(). Када метода сорт() сортира документе онда прослеђује излаз сортирања методи сорт(). Након тога, скип() метода је уклонила прва четири сортирана документа из колекције.

Закључак

Чланак је о резултатима упита за сортирање у МонгоДБ-у. За ову сврху смо користили метод сорт() који организује записе у одређеном низу. Такође смо користили метод сорт() за вишеструко сортирање у неколико поља. Метода сорт() се затим упарује са методама лимит() и скип() до сортираних докумената користећи ове операције. Додатно, обезбедили смо $сорт агрегацију за резултате упита сортирања у МонгоДБ.