МонгоДБ $Мин оператор

Mongodb Min Operator



Ако нисте нови корисник база података или програмирања, мора да сте испробали програме и упите који користе операторе поређења – веће од, мање од, једнако итд. У МонгоДБ-у, где користимо оператор „$сет“ за ажурирати одређени запис поља или додати нови запис у базу података, такође можемо постићи исти резултат користећи операторе поређења као што су „$мин“ и „$мак“. У МонгоДБ-у, „$мин“ оператор се може користити у оквиру многих функционалних упита за ажурирање одређеног поља када је нова вредност мања од већ уметнуте вредности. Такође, може се користити за груписање и приказивање записа колекције у одређеном редоследу. Овај водич вам помаже са различитим начинима да одбаците „$мин“ оператор у МонгоДБ-у.

Пример 1:

Почевши од прве илустрације, демонстрирамо употребу оператора „$мин“ у МонгоДБ-у за ажурирање већ уметнутог записа помоћу алата за шкољку МонгоДБ у Виндовс систему. Због тога морате имати неке записе који су већ додати вашој бази података. Дакле, користимо упит функције инсертМани() да бисмо додали укупно 5 записа у колекцију „ред“ базе података „тест“. Сваки од уметнутих записа који је приказан на следећој илустрацији садржи укупно 4 поља – ид, наслов, продајна цена и порез. Ови подаци од 5 записа су успешно уметнути према приложеном излазу:

тест > дб.ордер.инсертМани ( [ { 'ид' :01, 'наслов' : 'сапун' , 'Продајна цена' : 500 , 'Порез' : 24 } ,
... { 'ид' :02, 'наслов' : 'шампон' , 'Продајна цена' : 700 , 'Порез' : 27 } ,
... { 'ид' :03, 'наслов' : 'Детерџент' , 'Продајна цена' : 400 , 'Порез' : 22 } ,
... { 'ид' :04, 'наслов' : 'парфем' , 'Продајна цена' : 900 , 'Порез' : 30 } ,
... { 'ид' :05, 'наслов' : 'Измаглица' , 'Продајна цена' : 850 , 'Порез' : 27 } ] )







Време је да погледате уметнути запис у „тестној“ бази података. За то морате да одбаците метод „финд()“ заједно са методом „форЕацх“, узимајући „принтјсон“ као аргумент у „дб“ инструкцији. Користећи колекцију под називом „ордер“, имамо запис приказан на екрану.



тест > дб.ордер.финд ( ) .за сваки ( принтјсон )



Крајње је време да користите оператор „$мин“ у упиту функције „упдатеОне“ да бисте ажурирали један запис из колекције „ордер“ која је управо креирана. Поље „ид“ се користи као јединствени идентификатор за ажурирање одређеног записа из базе података, док се оператор „$мин“ примењује на поље „СалеПрице“ да би се његова вредност ажурирала на 600 ако је мања од већ уметнуте вредности. Излазна порука показује да је упит успешан, али да нема ажурирања.





тест > дб.ордер.упдатеОне ( { ид: 3 } , { $мин : { Продајна цена: 600 } } )

Разлог зашто се не ажурира поље „СалеПрице“ трећег записа је тај што оно садржи вредност „400“ која је мања од „600″. Стога, оператор „$мин“ не ажурира минималну вредност „400“ већом вредношћу од „600“ према следећем приложеном упиту финд():



тест > дб.ордер.финд ( ) .за сваки ( принтјсон )

Хајде да направимо малу промену у упиту за ажурирање да бисмо овај пут добили другачији излаз. Користимо исту „дб“ инструкцију која користи функцију „упдатеОне“ у њој да измени један запис од „3“. Оператор „$мин“ се примењује на поље „СалеПрице“ да би се његова вредност поставила на „300“ ако је вредност „300“ мања од већ уметнуте вредности. Знамо да је већ уметнута вредност „400“ у пољу СалеПрице већа од нове вредности „300“ коју треба поредити. Дакле, овај пут замењује „400“ са „300“. Излазна порука показује успешно извршење овог упита. Измењени број = 1 значи да је 1 запис измењен.

тест > дб.ордер.упдатеОне ( { ид: 3 } , { $мин : { Продајна цена: 300 } } )

Након што смо приказали записе колекције „наруџбине“ из базе података „тест“ у ЈСОН формату преко инструкције функције „финд()“ у љусци МонгоДБ, открили смо да је трећи запис успешно ажуриран. Вредност од 400 у пољу „СалеПрице“ замењује се вредношћу од 300.

тест > дб.ордер.финд ( ) .за сваки ( принтјсон )

Пример 2:

У оквиру ове МонгоДБ илустрације, ми преузимамо записе одређене базе података тако што их групишемо у вези са оператором „$мин“ према минималној вредности у записима. Претпоставимо да имате истих 5 записа у колекцији „ред“ МонгоДБ-ове „тестне“ базе података и да морате да имате неке дупле податке у одређеним пољима „тестне“ базе података. За ово додајемо још записа у колекцију „ред“ базе података „тест“. Овог пута убацујемо дуплиране вредности за поље „Наслов“. Користи се у клаузули „$гроуп“ за формирање групе јединствених вредности. Следећи излаз приказује ново уметнута још 3 записа за „тестну“ базу података. Сада, колекција „поруџбина“ има дуплиране вредности за поље „Наслов“ у поређењу са 5 старих записа. Остатак користи исто.

Након што имате укупно 8 записа у колекцији „ред“ базе података „тест“, време је да тестирате $мин оператор МонгоДБ-а након његове примене на одређено поље које је груписано другим пољем. Приложена агрегатна команда се односи на ово. Почиње кључном речи „дб“, праћеном именом колекције у одређеној бази података и функцијом аггрегате(). Агрегатна функција почиње употребом клаузуле $гроуп МонгоДБ-а која се овде посебно користи за приказ података у групи у вези са пољем „Титле“ у бази података „тест“, где се поље „Титле“ узима као јединствени кључ .

У исто време, поље цене се иницијализује одвојено које узима само запис минималне вредности од укупно 8 истих записа преко „$мин“ оператора који се примењује на њега. Излаз извршења овог упита приказује приказ 5 записа са малим ажурирањем у одељку цена. Можете видети да се не приказују записи који се понављају. Овде су приказани неки јединствени записи и записи најмањих вредности.

тест > дб.ордер.аггрегате ( [ { $гроуп : { _ид: ' $Титле ' , Цена: { $мин : ' $СалеПрице ' } } } ] )

Закључак

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