MongoDB NEBO Operátor

Mongodb Nebo Operator



Máme různé logické operátory dotazů, které jsou dostupné v MongoDB, a jedním z nich je operátor $or. Operátor MongoDB $or se používá k implementaci logické operace OR na poli, které obsahuje dva nebo více výrazů, ak načtení pouze těch dokumentů, které se shodují s kterýmkoli ze zadaných výrazů v poli. Operátor $or se používá k nalezení více příkazů v jednom dotazu pouze s jedním kritériem shody dokumentu. Operátor $or usnadňuje kombinaci několika klíčů a hodnot.

Jak používat operátor OR v MongoDB

Operátor OR v MongoDB je reprezentován ve formátu „$or“. „$or“ se používá k uzavření více výrazů do hranatých závorek, na kterých se provádí logická operace OR. Na kolekci MongoDB používáme operátor $or. Vytváříme kolekci MongoDB s názvem „Pacienti“. Kolekce „Pacienti“ je vložena s více dokumenty, na kterých provádíme operátor $or. Následující dokumenty jsou vloženy do MongoDB vyvoláním metody insertMany():

db.Pacienti.insertMany ( [
{
'Jméno' : 'Jennifer' ,
'Příjmení' : 'Joshua' ,
'Stáří' : 44 ,
'Telefonní číslo' : 43400517 ,
'Jmenování' : 'Zubař' ,
'Poplatky' : 2000 ,
'Test' : [ 'Rentgen' , 'Krev' , 'pulpal' ]
} ,
{
'Jméno' : 'thomas' ,
'Příjmení' : 'Steven' ,
'Stáří' : 74 ,
'Telefonní číslo' : 39034694 ,
'Datum schůzky' : 'Chirurg' ,
'Poplatky' : 6000 ,
'Test' : [ 'volitelný' , 'PPT' ]
} ,
{
'Jméno' : 'karel' ,
'Příjmení' : 'Daniel' ,
'Stáří' : 35 ,
'Telefonní číslo' : 65712165 ,
'Jmenování' : 'kardiologický lékař' ,
'Poplatky' : 2000 ,
'Test' : [ 'CT' , 'MRI' ]
} ,
{
'Jméno' : 'Michelle' ,
'Příjmení' : 'Pavel' ,
'Stáří' : 51 ,
'Telefonní číslo' : 54399288 ,
'Jmenování' : 'Dermatolog' ,
'Poplatky' : 8000 ,
'Test' : [ 'biopsie kůže' , 'Dřevěné světlo' , 'škrábání kůže' ]
} ,

{
'Jméno' : 'Andrew' ,
'Příjmení' : 'Jerry' ,
'Stáří' : 69 ,
'Telefonní číslo' : 6108100 ,
'Jmenování' : 'kardiologický lékař' ,
'Poplatky' : 7000 ,
'Test' : [ 'EKG' , 'Glukóza v krvi' , 'Ultrazvuk' ]
}
] )

Výstup dříve vložených dokumentů potvrzuje hodnotu „true“ a poskytuje hodnoty „insertedIds“ pro každý dokument.









Příklad 1: Operátor MongoDB $OR pro spárování dokumentů

Je zde implementován základní dotaz operátoru MongoDB $or, který demonstruje fungování tohoto operátoru v MongoDB. Zde definujeme dotaz pomocí metody find(). Metoda find() je dále specifikována operátorem $or. Operátor $or přebírá dvě pole, „Schůzka“ a „Poplatky“, kterým jsou přiřazeny hodnoty. Operátor $or odpovídá hodnotě pole a načte pouze ty dokumenty, jejichž hodnoty se shodují s hodnotami pole. Struktura dotazu operátoru $or je uvedena v následujícím textu:



db.Pacienti.find ( { $nebo : [ { Jmenování: 'Dermatolog' } ,
{ Poplatky: 7000 } ] } ) .dosti ( )

Vyzvedáváme dokumenty, jejichž „Jmenování“ je u „Dermatologa“ a „Poplatky“ jsou „7000“. Operátor $or najde pravdivé výsledky z obou hodnot polí a vrátí odpovídající dokumenty ve výstupu.





Příklad 2: Operátor MongoDB $OR pro spárování neexistujících dokumentů

V předchozím dotazu operátoru $or jsme načetli odpovídající dokumenty. Nyní získáme neexistující dokument ze sbírky „Pacient“. Následující dotaz operátora $or převezme dokument, jehož „Jméno“ je „Karel“ a „Schůzka“ je u „Lékaře“. Operátor $or porovnává tyto hodnoty pole v kolekci „Pacienti“ a po shodě vygeneruje výsledky.



db.Pacienti.find ( { $nebo : [ { 'Jméno' : 'karel' } , { 'Jmenování' : 'Lékař' } ] } ) .dosti ( )

Operátor $or má jeden pravdivý výsledek a druhý má nepravdivý výsledek. Když uvedeme „Schůzku“ s hodnotou „Lékař“, která neodpovídá žádnému z dokumentů ve sbírce „Pacient“. Proto operátor $or vrátí pouze dokument shodného pole, který je jako výstup „Pacient“.

Příklad 3: Operátor MongoDB $OR s více argumenty

V předchozích dotazech operátora $or jsme poskytli dva argumenty. Zde předáme více než dva argumenty jako operátorový výraz $nebo. Načteme dokument, který odpovídá jakékoli hodnotě pole „Věk“, které je mu přiděleno. Požadavek operátoru $or je stejný pro více argumentů, že jeden z výrazů by měl být pravdivý. Dotaz na více argumentů v operátoru $or je zadán takto:

db.Pacienti.find ( { 'Jmenování' : 'kardiologický lékař' , $nebo : [ { 'Stáří' : dvacet } , { 'Stáří' : 35 } , { 'Stáří' : 69 } ] } )

Zde máme dva shodné výsledky, které jsou získány od operátora $or. Hodnoty „Věk“, které jsou „35“ a „69“, jsou porovnány s dokumenty „Pacienti“, které získal operátor $or a jsou zobrazeny na plášti.

Příklad 4: Operátor MongoDB $OR s agregací

Agregační metoda v MongoDB kombinuje záznamy do kolekce. Proto je lze použít pro různé operace. Operátor $or provádíme v agregační metodě, která vyhodnotí jeden nebo více výrazů a vrátí true, pokud se některý z nich vyhodnotí jako true. V opačném případě je prohlášení považováno za nepravdivé.

Mějme dotaz operátora agregace $nebo, kde nejprve vyvoláme metodu Agregát(), která poté nasadí $match a $project, který je zadán s hodnotou _id, která má být z dokumentu porovnána. Poté nastavíme pole „Věk“ na hodnotu „1“, protože chceme, aby se toto pole generovalo pouze ze všech dokumentů. Poté definujeme atribut „Results“, který má operaci $or. Operátor $or přebírá podmíněný příkaz $gt. Výraz „$gt:[“$Věk“, 69]“ udává věk, jehož hodnota je větší než „69“. Výsledky pro tento výraz jsou předány operátoru $or a operátor $or vrátí dokument, který splňuje zadanou podmínku.

db.Pacienti.aggregate (
[
{ $match : { _id: ObjectId ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $projekt : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
Stáří: jeden ,
Výsledek: { $nebo : [
{ $gt : [ ' $Věk ' , 69 ] }
] }
}
}
]
)

„Věk“, který je větší než „69“, je „74“, což je zobrazeno ve výstupním shellu spolu s „Výsledky“, které mají hodnotu „true“.

Příklad 5: Operátor MongoDB $OR vyvolá podmínky

Operátor $or MongoDB je logický operátor. Tento logický operátor můžeme použít s podmíněným operátorem. Operátor $or vrátí výsledky, když jsou splněny podmínky. Kromě toho můžeme v operátoru $or vyvolat více než jednu podmínku, z nichž jedna musí být pravdivá. Zde máme dotaz operátora $or, který je zadán se dvěma různými podmínkami. První podmínkou je „{Poplatky:{$lt: 6000}}“, která vrátí dokument, který je nižší než hodnota „Poplatky“ „6000“. Podmínka {Poplatky:“$gt: 7000”} získá dokument, který je větší než hodnota „Poplatky“ „7000“.

Operátor $or poskytne odpovídající dokument, když jsou tyto podmínky splněny. Poté zadáme názvy polí, která se zobrazí pouze tehdy, když operátor $or poskytne odpovídající dokument.

db.Pacienti.find ( {
$nebo : [
{ Poplatky: { $lt : 6000 } } ,
{ Poplatky: { $gt : 7000 } }
]
} , {
Jméno: jeden ,
Poplatky: jeden
} )

Výstup zobrazí pouze pole „Jméno“ a „Poplatky“ pro odpovídající dokumenty.

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

Všechny implementované dotazy s operátorem $or jsou předány s hodnotou argumentu. Nyní definujeme operátorový dotaz $or, který nevkládá žádný argument. Když je proveden prázdný argument $ nebo operátor dotaz, vyhodnotí se nepravdivé výsledky. Dáme dotaz, kde je operace $or předána s prázdným výrazem.

db.Pacienti.aggregate (
[
{ $match : { _id: { $in : [ ObjectId ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $projekt : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
Výsledek: { $nebo : [ ] } }
}
]
)

V důsledku toho, že operátor $or je dodán s prázdným argumentem, výsledky uvádějí falešnou hodnotu.

Příklad 7: Operátor MongoDB $OR odpovídá hodnotám pole

Do dokumentů, které mají různé hodnoty, vložíme pole „Test“. Toto pole používáme pro operátor $or ke zkoumání výsledků. Operátor $or v následujícím dotazu je vyvolán uvnitř metody find(). Operátor $or bere pole „Test“ jako výraz. Pole „Test“ používá operátor $in k identifikaci dokumentů, jejichž hodnoty polí odpovídají hodnotám „MRI“ a „CT“ v poli.

db.Pacienti.find ( { $nebo : [ { Test: { $in : [ 'MRI' , 'CT' ] } } ] } ) .dosti ( )

Jeden dokument se zobrazí na shellu, když se provede operátor dotazu $or, který ukazuje, že načtený dokument obsahuje zadané hodnoty pole.

Závěr

Tento článek MongoDB ilustruje použití dotazu operátora MongoDB $or k provádění logických operací OR na poli, které obsahuje dva nebo více výrazů, a také k načtení dokumentů, které odpovídají alespoň jednomu z výrazů. Operátor $or je dotazován v prostředí MongoDB, aby provedl různé operace. Operátor $or se používá v podmíněných operátorech jako výraz a vrací dokumenty na základě podmíněných příkazů.