MongoDB ALEBO Operátor

Mongodb Alebo Operator



Máme rôzne logické operátory dotazov, ktoré sú dostupné v MongoDB, a jedným z nich je operátor $or. Operátor MongoDB $or sa používa na implementáciu logickej operácie OR na poli, ktoré obsahuje dva alebo viac výrazov, a na získanie iba tých dokumentov, ktoré sa zhodujú s ktorýmkoľvek zo zadaných výrazov v poli. Operátor $or sa používa na nájdenie viacerých príkazov v jednom dotaze iba s jedným kritériom zhody dokumentu. Operátor $or uľahčuje kombináciu niekoľkých kľúčov a hodnôt.

Ako používať operátor OR v MongoDB

Operátor OR v MongoDB je reprezentovaný vo formáte „$or“. „$or“ sa používa na uzavretie viacerých výrazov do hranatých zátvoriek, na ktorých sa vykonáva logická operácia OR. V kolekcii MongoDB používame operátor $or. Vytvárame kolekciu MongoDB s názvom „Pacienti“. Zbierka „Pacienti“ je vložená s viacerými dokumentmi, na ktorých vykonávame operátor $or. Nasledujúce dokumenty sa vložia do MongoDB vyvolaním metódy insertMany():

db.Pacienti.insertMany ( [
{
'Krstné meno' : 'Jennifer' ,
'Priezvisko' : 'Joshua' ,
'Vek' : 44 ,
'Telefónne číslo' : 43400517 ,
'vymenovanie' : 'zubár' ,
'poplatky' : 2000 ,
'test' : [ 'röntgen' , 'krv' , 'pulpal' ]
} ,
{
'Krstné meno' : 'Thomas' ,
'Priezvisko' : 'Steven' ,
'Vek' : 74 ,
'Telefónne číslo' : 39034694 ,
'dátum stretnutia' : 'chirurg' ,
'poplatky' : 6000 ,
'test' : [ 'voliteľné' , 'PPT' ]
} ,
{
'Krstné meno' : 'Charles' ,
'Priezvisko' : 'Daniel' ,
'Vek' : 35 ,
'Telefónne číslo' : 65712165 ,
'vymenovanie' : 'kardiologický lekár' ,
'poplatky' : 2000 ,
'test' : [ 'CT' , 'MRI' ]
} ,
{
'Krstné meno' : 'Michelle' ,
'Priezvisko' : 'Pavol' ,
'Vek' : 51 ,
'Telefónne číslo' : 54399288 ,
'vymenovanie' : 'Dermatológ' ,
'poplatky' : 8000 ,
'test' : [ 'Kožné biopsie' , 'drevené svetlo' , 'Škrabanie kože' ]
} ,

{
'Krstné meno' : 'Andrew' ,
'Priezvisko' : 'Jerry' ,
'Vek' : 69 ,
'Telefónne číslo' : 6108100 ,
'vymenovanie' : 'kardiologický lekár' ,
'poplatky' : 7000 ,
'test' : [ 'EKG' , 'Krvná glukóza' , 'ultrazvuk' ]
}
] )

Výstup predtým vložených dokumentov potvrdzuje hodnotu „true“ a poskytuje hodnoty „insertedIds“ pre každý dokument.









Príklad 1: Operátor MongoDB $OR na spárovanie dokumentov

Je tu implementovaný základný dotaz operátora MongoDB $or, ktorý demonštruje fungovanie tohto operátora v MongoDB. Tu definujeme dotaz pomocou metódy find(). Metóda find() je ďalej špecifikovaná operátorom $or. Operátor $or má dve polia, „Schôdzka“ a „Poplatky“, ktorým sú priradené hodnoty. Operátor $or sa zhoduje s hodnotou poľa a načíta len tie dokumenty, ktorých hodnoty sa zhodujú s hodnotami poľa. Štruktúra dotazu operátora $or je uvedená v nasledujúcom texte:



db.Pacienti.find ( { $ alebo : [ { stretnutie: 'Dermatológ' } ,
{ Poplatky: 7000 } ] } ) .pekná ( )

Prinášame dokumenty, ktorých „Schôdzka“ je u „dermatológa“ a „Poplatky“ sú „7000“. Operátor $or nájde pravdivé výsledky z oboch hodnôt polí a vráti zhodné dokumenty vo výstupe.





Príklad 2: Operátor MongoDB $OR na priradenie neexistujúcich dokumentov

V predchádzajúcom dotaze operátora $or sme získali zhodné dokumenty. Teraz získame neexistujúci dokument zo zbierky „Pacient“. Nasledujúci dopyt operátora $ alebo vezme dokument, ktorého „Krstné meno“ je „Charles“ a „Schôdzka“ je u „Lekára“. Operátor $or porovnáva tieto hodnoty polí v kolekcii „Pacienti“ a po zhode vygeneruje výsledky.



db.Pacienti.find ( { $ alebo : [ { 'Krstné meno' : 'Charles' } , { 'vymenovanie' : 'lekár' } ] } ) .pekná ( )

Operátor $or má jeden pravdivý výsledok a druhý má falošný výsledok. Keď zadáme „Termín“ s hodnotou „Lekár“, ktorá sa nezhoduje so žiadnym z dokumentov v zbierke „Pacient“. Preto operátor $or vráti iba dokument zhodného poľa, ktorý je ako výstup „Pacient“.

Príklad 3: Operátor MongoDB $OR s viacerými argumentmi

V predchádzajúcich dotazoch operátora $or sme poskytli dva argumenty. Tu odovzdávame viac ako dva argumenty ako výraz operátora $ alebo. Získame dokument, ktorý sa zhoduje s niektorou z hodnôt poľa „Vek“, ktoré sú mu pridelené. Požiadavka operátora $or je rovnaká pre viaceré argumenty, že jeden z výrazov by mal byť pravdivý. Dopyt na viaceré argumenty v operátori $or je zadaný takto:

db.Pacienti.find ( { 'vymenovanie' : 'kardiologický lekár' , $ alebo : [ { 'Vek' : dvadsať } , { 'Vek' : 35 } , { 'Vek' : 69 } ] } )

Tu máme dva zhodné výsledky, ktoré sme získali od operátora $or. Hodnoty „Vek“, ktoré sú „35“ a „69“, sa porovnajú s dokumentmi „Pacienti“, ktoré získa operátor $or a sú zobrazené na obale.

Príklad 4: Operátor MongoDB $OR s agregáciou

Agregovaná metóda v MongoDB kombinuje záznamy do kolekcie. Preto sa dajú použiť na rôzne operácie. Operátor $or vykonávame v agregačnej metóde, ktorá vyhodnotí jeden alebo viac výrazov a vráti hodnotu true, ak sa niektorý z nich vyhodnotí ako true. V opačnom prípade sa vyhlásenie považuje za nepravdivé.

Vezmime si dotaz operátora agregácie $ alebo, kde najprv vyvoláme metódu agregácie (), ktorá potom nasadí $match a $project, ktorý je zadaný s hodnotou _id, ktorá sa má z dokumentu priradiť. Potom nastavíme pole „Vek“ na hodnotu „1“, pretože chceme, aby sa toto pole generovalo iba zo všetkých dokumentov. Potom definujeme atribút „Results“, ktorý má operáciu $or. Operátor $or berie podmienený príkaz $gt. Výraz „$gt:[“$Vek“, 69]“ udáva vek, ktorého hodnota je väčšia ako „69“. Výsledky pre tento výraz sa odovzdajú operátoru $or a operátor $or vráti dokument, ktorý spĺňa zadanú podmienku.

db.Pacienti.aggregate (
[
{ $match : { _id: ObjectId ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $projekt : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
Vek: jeden ,
výsledok: { $ alebo : [
{ $ gt : [ ' $Vek ' , 69 ] }
] }
}
}
]
)

„Vek“, ktorý je väčší ako „69“, je „74“, ktorý sa zobrazí vo výstupnom okne spolu s „Výsledkami“, ktoré majú hodnotu „true“.

Príklad 5: Operátor MongoDB $OR vyvolá podmienky

Operátor $or MongoDB je logický operátor. Tento logický operátor môžeme použiť s podmieneným operátorom. Operátor $or vráti výsledky, keď sú splnené podmienky. Okrem toho môžeme v operátori $or vyvolať viac ako jednu podmienku, z ktorých jedna musí byť pravdivá. Tu máme dotaz operátora $or, ktorý je zadaný s dvoma rôznymi podmienkami. Prvá podmienka je „{Poplatky:{$lt: 6000}}“, ktorá vráti dokument, ktorý je nižší ako hodnota „Poplatky“ „6000“. Podmienka {Poplatky:“$gt: 7000”} získa doklad, ktorý je väčší ako hodnota „Poplatky“ „7000“.

Operátor $or poskytne spárovaný dokument, keď sú splnené tieto podmienky. Potom zadáme názvy polí, ktoré sa zobrazia len vtedy, keď operátor $or poskytne zhodný dokument.

db.Pacienti.find ( {
$ alebo : [
{ Poplatky: { $lt : 6000 } } ,
{ Poplatky: { $ gt : 7000 } }
]
} , {
Krstné meno: jeden ,
Poplatky: jeden
} )

Výstup zobrazuje iba polia „Meno“ a „Poplatky“ pre zhodné dokumenty.

Príklad 6: Operátor MongoDB $OR bez argumentu

Všetky implementované dotazy s operátorom $or sú odovzdané s hodnotou argumentu. Teraz definujeme operátorový dotaz $or, ktorý nevkladá žiadny argument. Keď sa vykoná prázdny argument $ alebo operátor dotaz, vyhodnotí sa nesprávne výsledky. Dáme dotaz, kde sa operácia $or odovzdá s prázdnym výrazom.

db.Pacienti.aggregate (
[
{ $match : { _id: { $in : [ ObjectId ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $projekt : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
výsledok: { $ alebo : [ ] } }
}
]
)

V dôsledku toho, že operátor $or je dodaný s prázdnym argumentom, výsledky uvádzajú nepravdivú hodnotu.

Príklad 7: Operátor MongoDB $OR zodpovedá hodnotám poľa

Do dokumentov, ktoré majú rôzne hodnoty, vložíme pole „Test“. Toto pole používame pre operátor $or na preskúmanie výsledkov. Operátor $or v nasledujúcom dotaze sa vyvolá v metóde find(). Operátor $or berie pole „Test“ ako výraz. Pole „Test“ používa operátor $in na identifikáciu dokumentov, ktorých hodnoty polí sa zhodujú s hodnotami „MRI“ a „CT“ v poli.

db.Pacienti.find ( { $ alebo : [ { Test: { $in : [ 'MRI' , 'CT' ] } } ] } ) .pekná ( )

Jeden dokument sa zobrazí na shell, keď sa vykoná operátor $ alebo dotaz, ktorý ukazuje, že získaný dokument obsahuje zadané hodnoty poľa.

Záver

Tento článok MongoDB ilustruje použitie dotazu operátora MongoDB $ alebo na vykonanie logických operácií OR na poli, ktoré obsahuje dva alebo viac výrazov, ako aj na získanie dokumentov, ktoré zodpovedajú aspoň jednému z výrazov. Operátor $or je požiadaný v shell MongoDB na vykonanie rôznych operácií. Operátor $or sa používa v podmienených operátoroch ako výraz a vracia dokumenty na základe podmienených príkazov.