МонгоДБ ОР оператор

Mongodb Or Operator



Имамо различите логичке операторе упита који су доступни у МонгоДБ-у, а један од њих је оператор $ор. МонгоДБ оператор $ор се користи за имплементацију логичке операције ИЛИ на низ који садржи два или више израза и за преузимање само оних докумената који се подударају са било којим од наведених израза у низу. Оператор $ор се користи за проналажење више исказа у једном упиту са само једним подударним критеријумом документа. Оператор $ор олакшава комбинацију неколико кључева и вредности.

Како користити ОР оператор у МонгоДБ-у

Оператор ОР у МонгоДБ-у је представљен у '$ор' формату. „$ор“ се користи за затварање више израза у угласте заграде на којима се изводи логичка операција ИЛИ. Користимо оператор $ор у колекцији МонгоДБ. Креирамо колекцију МонгоДБ која носи наслов „Пацијенти“. Колекција „Пацијенти“ је уметнута са више докумената на којима изводимо $ор оператор. Следећи документи се убацују у МонгоДБ позивањем методе инсертМани():

дб.Патиентс.инсертМани ( [
{
'Име' : 'Џенифер' ,
'Презиме' : 'Јосхуа' ,
'старост' : 44 ,
'Број телефона' : 43400517 ,
'Именовање' : 'Зубар' ,
'Тужбе' : 2000 ,
'Тест' : [ 'рендгенски снимак' , 'Крв' , 'пулпал' ]
} ,
{
'Име' : 'Томас' ,
'Презиме' : 'Стевен' ,
'старост' : 74 ,
'Број телефона' : 39034694 ,
'Датум именовања' : 'Хирург' ,
'Тужбе' : 6000 ,
'Тест' : [ 'изборни' , 'ППТ' ]
} ,
{
'Име' : 'Чарлс' ,
'Презиме' : 'Даниел' ,
'старост' : 35 ,
'Број телефона' : 65712165 ,
'Именовање' : 'кардиолошки лекар' ,
'Тужбе' : 2000 ,
'Тест' : [ 'ЦТ' , 'МРИ' ]
} ,
{
'Име' : 'Мишел' ,
'Презиме' : 'Павле' ,
'старост' : 51 ,
'Број телефона' : 54399288 ,
'Именовање' : 'дерматолог' ,
'Тужбе' : 8000 ,
'Тест' : [ 'Биопсије коже' , 'Дрвено светло' , 'Страгање коже' ]
} ,

{
'Име' : 'Андрија' ,
'Презиме' : 'Џери' ,
'старост' : 69 ,
'Број телефона' : 6108100 ,
'Именовање' : 'кардиолошки лекар' ,
'Тужбе' : 7000 ,
'Тест' : [ 'ЕКГ' , 'Шећер у крви' , 'ултразвук' ]
}
] )

Излаз претходно уметнутих докумената потврђује „тачно“ и даје вредности „инсертедИдс“ за сваки документ.









Пример 1: МонгоДБ $ОР оператор за подударање докумената

Овде је имплементиран основни упит МонгоДБ $ор оператора који демонстрира рад овог оператора у МонгоДБ. Овде дефинишемо упит методом финд(). Метод финд() је даље специфициран са $ор оператором. Оператор $ор узима два поља, „Аппоинтмент“ и „Цхаргес“, којима се додељују вредности. Оператор $ор одговара вредности поља и преузима само оне документе чије се вредности подударају са вредностима поља. Структура упита оператора $ор је дата у следећем:



дб.Патиентс.финд ( { $ор : [ { Именовање: 'дерматолог' } ,
{ Наплате: 7000 } ] } ) .прилично ( )

Доносимо документе чији је „Заказивање” код „Дерматолога” и чији су „Трошкови” „7000”. Оператор $ор проналази тачне резултате из обе вредности поља и враћа документе који се подударају у излазу.





Пример 2: МонгоДБ $ОР оператор за подударање непостојећих докумената

У претходном упиту оператора $ор, преузели смо документе који се подударају. Сада преузимамо непостојећи документ из колекције „Пацијент“. Следећи упит оператора $ор узима документ чије је „Име“ „Чарлс“, а „Заказивање“ је код „Лекара“. Оператор $ор одговара овим вредностима поља у оквиру колекције „Пацијенти“ и генерише резултате након подударања.



дб.Патиентс.финд ( { $ор : [ { 'Име' : 'Чарлс' } , { 'Именовање' : 'лекар' } ] } ) .прилично ( )

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

Пример 3: МонгоДБ $ОР оператор са више аргумената

Навели смо два аргумента у претходним упитима оператора $ор. Овде преносимо више од два аргумента као израз оператора $ор. Ми преузимамо документ који одговара било којој од вредности поља „Старост“ које су му дате. Захтев за оператором $ор је исти за више аргумената да један од израза треба да буде истинит. Упит за више аргумената у оператору $ор је дат на следећи начин:

дб.Патиентс.финд ( { 'Именовање' : 'кардиолошки лекар' , $ор : [ { 'старост' : двадесет } , { 'старост' : 35 } , { 'старост' : 69 } ] } )

Тамо имамо два подударна резултата која се добијају од оператора $ор. Вредности „Старост“ које су „35“ и „69“ упоређују се са документима „Пацијенти“ које добија оператер $ор и приказују се на љусци.

Пример 4: МонгоДБ $ОР оператор са агрегацијом

Агрегатни метод у МонгоДБ комбинује записе у колекцију. Због тога се могу користити за различите операције. Изводимо оператор $ор у методи агрегације која процењује један или више израза и враћа труе ако било који од њих процењује вредност тачне. У супротном, изјава се сматра лажном.

Хајде да имамо упит оператора агрегације $ор где прво позивамо метод аггрегате() који затим примењује $матцх и $пројецт који је специфициран са вредношћу _ид која треба да се упари из документа. Затим постављамо поље „Старост“ са вредношћу „1“ јер желимо само да се ово поље генерише из свих докумената. Након тога дефинишемо атрибут „Резултати“ који има операцију $ор. Оператор $ор узима условни исказ од $гт. Израз „$гт:[“$Аге”, 69]” даје узраст чија је вредност већа од „69”. Резултати за овај израз се прослеђују оператору $ор и оператор $ор враћа документ који испуњава наведени услов.

дб.Патиентс.аггрегате (
[
{ $матцх : { _ид: ОбјецтИд ( '6391ц61а4ц91е007фб4ф0228' ) } } ,
{ $пројецт : {
_ид: ОбјецтИд ( '6391ц61а4ц91е007фб4ф0227' ) ,
Старост: једно ,
резултат: { $ор : [
{ $гт : [ ' $Аге ' , 69 ] }
] }
}
}
]
)

„Старост“ која је већа од „69“ је „74“ која се приказује у излазној љусци заједно са „Резултатима“ који имају „праву“ вредност.

Пример 5: МонгоДБ $ОР оператор позива услове

$ор оператор МонгоДБ-а је логички оператор. Можемо користити овај логички оператор са условним оператором. Оператор $ор враћа резултате када су услови испуњени. Поред тога, можемо позвати више од једног услова у оператору $ор од којих један мора бити истинит. Овде имамо упит за оператор $ор који је специфициран са два различита услова. Први услов је „{Цхаргес:{$лт: 6000}}“ који враћа документ који је мањи од вредности „Цхаргес“ од „6000“. Услов {Цхаргес:“$гт: 7000”} добија документ који је већи од вредности „Цхаргес“ од „7000“.

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

дб.Патиентс.финд ( {
$ор : [
{ Наплате: { $лт : 6000 } } ,
{ Наплате: { $гт : 7000 } }
]
} , {
Име: једно ,
Наплате: једно
} )

Излаз приказује само поља „ФирстНаме“ и „Цхаргес“ за одговарајуће документе.

Пример 6: МонгоДБ $ОР оператор без аргумента

Сви имплементирани упити са $ор оператором се прослеђују са вредношћу аргумента. Сада дефинишемо упит оператора $ор који не уноси аргумент. Када се изврши упит за празан аргумент $ор оператор, он процењује лажне резултате. Дајемо упит где се операција $ор преноси са празним изразом.

дб.Патиентс.аггрегате (
[
{ $матцх : { _ид: { $ин : [ ОбјецтИд ( '6391ц61а4ц91е007фб4ф0228' ) ] } } } ,
{ $пројецт : {
_ид: ОбјецтИд ( '6391ц61а4ц91е007фб4ф0227' ) ,
резултат: { $ор : [ ] } }
}
]
)

Пошто је оператор $ор испоручен празним аргументом, резултати наводе лажну вредност.

Пример 7: МонгоДБ $ОР оператор одговара вредностима низа

У документе који имају различите вредности убацујемо низ „Тест“. Користимо тај низ за оператор $ор да бисмо испитали резултате. Оператор $ор у следећем упиту се позива унутар методе финд(). Оператор $ор узима низ „Тест“ као израз. Низ „Тест“ користи оператор $ин да идентификује документе чије вредности поља одговарају вредностима „МРИ“ и „ЦТ“ у низу.

дб.Патиентс.финд ( { $ор : [ { Тест: { $ин : [ 'МРИ' , 'ЦТ' ] } } ] } ) .прилично ( )

Један документ се приказује на љусци када се изврши $ор оператор упита који показује да преузети документ садржи наведене вредности низа.

Закључак

Овај МонгоДБ чланак илуструје употребу упита МонгоДБ $ор оператора за извршавање логичких ИЛИ операција на низу који укључује два или више израза, као и за преузимање докумената који одговарају најмање једном од израза. Оператору $ор се поставља упит у љусци МонгоДБ да би извршио различите операције. Оператор $ор се користи у условним операторима као израз и враћа документе на основу условних исказа.