MongoDB $Min оператор

Mongodb Min Operator



Ако не сте нов потребител на бази данни или програмиране, трябва да сте опитали програмите и заявките, които използват операторите за сравнение – по-голямо от, по-малко от, равно на и т.н. В MongoDB, където използваме оператора „$set“, за актуализиране на конкретен запис на поле или добавяне на нов запис към базата данни, можем също да постигнем същия резултат, като използваме операторите за сравнение като “$min” и “$max”. В MongoDB операторът “$min” може да се използва в много функционални заявки за актуализиране на конкретно поле, когато нова стойност е по-малка от вече въведената стойност. Също така може да се използва за групиране и показване на записите на колекция в определен ред. Това ръководство ви помага с различни начини за премахване на оператора „$min“ в MongoDB.

Пример 1:

Започвайки с първата илюстрация, ние демонстрираме използването на оператора “$min” в MongoDB за актуализиране на вече вмъкнат запис с помощта на инструмента MongoDB shell в системата Windows. Следователно трябва да имате някои записи, които вече са добавени към вашата база данни. И така, използваме заявката за функция insertMany(), за да добавим общо 5 записа в колекцията „поръчка“ на „тестова“ база данни. Всеки от вмъкнатите записи, които са показани на следващата илюстрация, съдържа общо 4 полета – идентификатор, заглавие, продажна цена и данък. Тези данни от 5 записа са вмъкнати успешно според прикачения изход:

тест > db.order.insertMany ( [ { 'документ за самоличност' :01, 'Заглавие' : 'сапун' , 'Продажна цена' : 500 , 'данък' : 24 } ,
... { 'документ за самоличност' :02, 'Заглавие' : 'шампоан' , 'Продажна цена' : 700 , 'данък' : 27 } ,
... { 'документ за самоличност' :03, 'Заглавие' : 'Перилен препарат' , 'Продажна цена' : 400 , 'данък' : 22 } ,
... { 'документ за самоличност' :04, 'Заглавие' : 'Парфюм' , 'Продажна цена' : 900 , 'данък' : 30 } ,
... { 'документ за самоличност' :05, 'Заглавие' : 'мъгла' , 'Продажна цена' : 850 , 'данък' : 27 } ] )







Време е да погледнете вмъкнатия запис в „тестова“ база данни. За целта трябва да отхвърлите метода „find()“ заедно с метода „forEach“, като вземете „printjson“ като аргумент в инструкцията „db“. Използвайки колекцията, наречена „поръчка“, имаме запис, показан на екрана.



тест > db.order.find ( ) .за всеки ( printjson )



Крайно време е да използвате оператора '$min' в заявката за функция 'updateOne', за да актуализирате един запис от колекцията 'поръчка', която току-що е създадена. Полето „id“ се използва като уникален идентификатор за актуализиране на конкретен запис от база данни, докато операторът „$min“ се прилага към поле „SalePrice“, за да актуализира стойността му до 600, ако е по-малка от вече въведената стойност. Изходното съобщение показва, че заявката е успешна, но не се правят актуализации.





тест > db.order.updateOne ( { документ за самоличност: 3 } , { мин. $ : { Продажна цена: 600 } } )

Причината, поради която не се прави актуализация на полето „SalePrice“ на 3-тия запис, е, че то съдържа стойността „400“, която е по-малка от „600″. Следователно операторът „$min“ не актуализира минималната стойност от „400“ с по-голяма стойност от „600“ според следната прикачена заявка за намиране():



тест > db.order.find ( ) .за всеки ( printjson )

Нека направим малка промяна в заявката за актуализиране, за да получим различен резултат този път. Ние използваме същата инструкция „db“, която използва функцията „updateOne“ в нея, за да модифицира единичен запис на „3“. Операторът „$min“ се прилага към полето „SalePrice“, за да зададе стойността му на „300“, ако стойността на „300“ е по-малка от вече въведената стойност. Знаем, че вече въведената стойност „400“ на полето SalePrice е по-голяма от новата стойност „300“, която трябва да бъде сравнена. И така, този път заменя „400“ с „300“. Изходното съобщение показва успешното изпълнение на тази заявка. Модифицираният брой = 1 означава, че 1 запис е променен.

тест > db.order.updateOne ( { документ за самоличност: 3 } , { мин. $ : { Продажна цена: 300 } } )

След показване на записите на колекция „поръчка“ от базата данни „тест“ във формат JSON чрез инструкцията за функция „find()“ в обвивката на MongoDB, открихме, че 3-тият запис е актуализиран успешно. Стойността 400 на полето „SalePrice“ се заменя със стойност 300.

тест > db.order.find ( ) .за всеки ( printjson )

Пример 2:

В рамките на тази илюстрация на MongoDB ние извличаме записите на конкретна база данни, като ги групираме по отношение на оператора „$min“ според минималната стойност в записите. Да приемем, че имате същите 5 записа в колекцията „поръчка“ на базата данни „тест“ на MongoDB и трябва да имате някои дублирани данни в конкретните полета на база данни „тест“. За тази цел добавяме още записи в колекцията „поръчка“ на базата данни „тест“. Този път вмъкваме дублиращите се стойности за полето „Заглавие“. Използва се в клауза “$group” за формиране на група от уникални стойности. Следният изход показва нововмъкнатите още 3 записа за „тестовата“ база данни. Сега колекцията „поръчка“ има дублиращи се стойности за полето „Заглавие“ в сравнение с 5-те стари записа. Останалите използват същото.

След като имате общо 8 записа в колекцията „поръчка“ на „тестовата“ база данни, е време да тествате $min оператора на MongoDB след прилагането му върху конкретно поле, което е групирано от друго поле. Приложената сборна команда е всичко за това. Започва с ключовата дума „db“, последвана от името на колекция в определена база данни и функцията aggregate(). Агрегираната функция започва с използването на клаузата $group на MongoDB, която се използва специално тук за показване на данните в група относно полето „Заглавие“ на „тестовата“ база данни, където полето „Заглавие“ се приема като уникален ключ .

В същото време ценовото поле се инициализира отделно, което взема само записа с минимална стойност от общо 8 същите записа чрез оператора „$min“, който се прилага към него. Резултатът от изпълнението на тази заявка показва показването на 5 записа с малка актуализация в ценовата част. Можете да видите, че не се показват повтарящи се записи. Тук се показват някои уникални записи с най-малка стойност.

тест > db.order.aggregate ( [ { $група : { _документ за самоличност: ' $Title ' , цена: { мин. $ : ' $SalePrice ' } } } ] )

Заключение

Това ръководство е колекция от илюстрации на MongoDB за показване на лесен възможен начин за използване на оператора „$min“. Уводният параграф се използва за обсъждане на целта на използването му в MongoDB. Първата част на тази статия обсъжда как операторът „$min“ работи и как не работи за единичен запис в база данни, т.е. за актуализиране или вмъкване на запис като минимална стойност. Също така, последните примери демонстрират използването му за групиране на записа на колекцията като уникален в цялата база данни.