MongoDB OR operator

Mongodb Or Operator



Imamo različite logičke operatore upita koji su dostupni u MongoDB-u, a jedan od njih je operator $or. MongoDB operator $or koristi se za implementaciju logičke operacije ILI na nizu koji sadrži dva ili više izraza i dohvaćanje samo onih dokumenata koji se podudaraju s bilo kojim od navedenih izraza u nizu. Operator $or koristi se za pronalaženje više izjava u jednom upitu sa samo jednim podudarnim kriterijem dokumenta. Operator $or olakšava kombinaciju nekoliko ključeva i vrijednosti.

Kako koristiti OR operator u MongoDB-u

Operator OR u MongoDB-u predstavljen je u formatu “$or”. “$or” se koristi za uključivanje višestrukih izraza u uglate zagrade na kojima se izvodi logička operacija ILI. Koristimo operator $or na MongoDB kolekciji. Stvaramo kolekciju MongoDB koja nosi naziv “Pacijenti”. Zbirka 'Pacijenti' umetnuta je s više dokumenata na kojima izvodimo operator $or. Sljedeći dokumenti umetnuti su u MongoDB pozivanjem metode insertMany():

db.Patients.insertMany ( [
{
'Ime' : 'Jennifer' ,
'Prezime' : 'Joshua' ,
'Dob' : 44 ,
'Broj telefona' : 43400517 ,
'Ugovoreni sastanak' : 'Stomatolog' ,
'Troškovi' : 2000. godine ,
'Test' : [ 'rentgen' , 'Krv' , 'Pulpal' ]
} ,
{
'Ime' : 'Thomas' ,
'Prezime' : 'Steven' ,
'Dob' : 74 ,
'Broj telefona' : 39034694 ,
'Datum sastanka' : 'Kirurg' ,
'Troškovi' : 6000 ,
'Test' : [ 'Izborni' , 'PPT' ]
} ,
{
'Ime' : 'Charles' ,
'Prezime' : 'Danijel' ,
'Dob' : 35 ,
'Broj telefona' : 65712165 ,
'Ugovoreni sastanak' : 'liječnik kardiologije' ,
'Troškovi' : 2000. godine ,
'Test' : [ 'CT' , 'MRI' ]
} ,
{
'Ime' : 'Mišel' ,
'Prezime' : 'Pavao' ,
'Dob' : 51 ,
'Broj telefona' : 54399288 ,
'Ugovoreni sastanak' : 'Dermatolog' ,
'Troškovi' : 8000 ,
'Test' : [ 'Biopsije kože' , 'Drveno svjetlo' , 'Struganje kože' ]
} ,

{
'Ime' : 'Andrija' ,
'Prezime' : 'Jerry' ,
'Dob' : 69 ,
'Broj telefona' : 6108100 ,
'Ugovoreni sastanak' : 'liječnik kardiologije' ,
'Troškovi' : 7000 ,
'Test' : [ 'EKG' , 'Šećer u krvi' , 'Ultrazvuk' ]
}
] )

Izlaz prethodno umetnutih dokumenata potvrđuje 'true' i daje vrijednosti 'insertedIds' za svaki dokument.









Primjer 1: MongoDB $OR operator za podudaranje s dokumentima

Ovdje je implementiran osnovni upit MongoDB operatora $or koji demonstrira rad ovog operatora u MongoDB-u. Ovdje definiramo upit metodom find(). Metoda find() dodatno je specificirana s operatorom $or. Operator $or uzima dva polja, “Sastanak” i “Troškovi”, kojima su dodijeljene vrijednosti. Operator $or odgovara vrijednosti polja i dohvaća samo one dokumente čije se vrijednosti podudaraju s vrijednostima polja. Struktura upita operatora $or navedena je na sljedeći način:



db.Pacijenti.naći ( { $ili : [ { Ugovoreni sastanak: 'Dermatolog' } ,
{ Troškovi: 7000 } ] } ) .prilično ( )

Dohvaćamo dokumente čiji je 'Terminalni pregled' kod 'Dermatologa' i čije su 'Troškovi' '7000'. Operator $or pronalazi prave rezultate iz obje vrijednosti polja i vraća podudarne dokumente u izlazu.





Primjer 2: MongoDB $OR operator za podudaranje nepostojećih dokumenata

U prethodnom upitu operatora $or dohvatili smo podudarne dokumente. Sada dohvaćamo nepostojeći dokument iz zbirke 'Pacijent'. Sljedeći upit operatora $or uzima dokument čije je 'Ime' 'Charles', a 'Dogovor' je kod 'Liječnika'. Operator $or podudara se s ovim vrijednostima polja unutar zbirke 'Pacijenti' i generira rezultate nakon podudaranja.



db.Pacijenti.naći ( { $ili : [ { 'Ime' : 'Charles' } , { 'Ugovoreni sastanak' : 'Liječnik' } ] } ) .prilično ( )

Operator $or ima jedan točan rezultat, a drugi netočan rezultat. Budući da specificiramo 'Appointment' s vrijednošću 'Physician' koja ne odgovara nijednom dokumentu u zbirci 'Pacijent'. Zbog toga operator $or kao izlaz vraća samo dokument podudarnog polja koji je 'Pacijent'.

Primjer 3: MongoDB $OR operator s više argumenata

Naveli smo dva argumenta u prethodnim upitima operatora $or. Ovdje prosljeđujemo više od dva argumenta kao operatorski izraz $or. Dohvaćamo dokument koji odgovara bilo kojoj vrijednosti polja 'Dob' koja mu je dana. Zahtjev operatora $or isti je za više argumenata da bi jedan od izraza trebao biti istinit. Upit za više argumenata u operatoru $or zadan je na sljedeći način:

db.Pacijenti.naći ( { 'Ugovoreni sastanak' : 'liječnik kardiologije' , $ili : [ { 'Dob' : dvadeset } , { 'Dob' : 35 } , { 'Dob' : 69 } ] } )

Tu imamo dva uparena rezultata koja se dobivaju iz operatora $or. Vrijednosti 'Dob' koje su '35' i '69' uspoređuju se s dokumentima 'Pacijenti' koje dobiva operater $or i prikazuju se na ljusci.

Primjer 4: MongoDB $OR operator s agregacijom

Metoda agregata u MongoDB-u kombinira zapise u kolekciju. Stoga se mogu koristiti za različite operacije. Izvodimo operator $or u metodi združivanja koja procjenjuje jedan ili više izraza i vraća true ako bilo koji od njih ima vrijednost true. U suprotnom, izjava se smatra lažnom.

Uzmimo upit operatora agregacije $or gdje prvo pozivamo metodu aggregate() koja zatim implementira $match i $project koji je naveden s vrijednošću _id koja se podudara iz dokumenta. Zatim polje “Dob” postavljamo s vrijednošću “1” jer želimo samo da se ovo polje generira iz svih dokumenata. Nakon toga definiramo atribut “Rezultati” koji ima operaciju $or. Operator $or preuzima uvjetni iskaz $gt. Izraz “$gt:[“$Age”, 69]” daje dob čija je vrijednost veća od “69”. Rezultati za ovaj izraz prosljeđuju se operatoru $or, a operator $or vraća dokument koji ispunjava navedeni uvjet.

db.Pacijenti.agregat (
[
{ $podudaranje : { _id: ID objekta ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $projekt : {
_id: ID objekta ( '6391c61a4c91e007fb4f0227' ) ,
Dob: jedan ,
Proizlaziti: { $ili : [
{ gt $ : [ ' $Dob ' , 69 ] }
] }
}
}
]
)

“Dob” koja je veća od “69” je “74” koja se prikazuje u izlaznoj ljusci zajedno s “Rezultatima” koji imaju vrijednost “true”.

Primjer 5: MongoDB $OR operator poziva uvjete

$or operator MongoDB-a je logički operator. Ovaj logički operator možemo koristiti s uvjetnim operatorom. Operator $or vraća rezultate kada su uvjeti zadovoljeni. Osim toga, možemo pozvati više od jednog uvjeta u $or operatoru od kojih jedan mora biti istinit. Ovdje imamo upit operatora $or koji je naveden s dva različita uvjeta. Prvi uvjet je “{Charges:{$lt: 6000}}” koji vraća dokument koji je manji od vrijednosti “Charges” od “6000”. Uvjet {Charges:“$gt: 7000”} dobiva dokument koji je veći od vrijednosti “Charges” od “7000”.

Operator $or daje odgovarajući dokument kada su ti uvjeti zadovoljeni. Zatim specificiramo nazive polja koja se prikazuju samo kada operator $or daje odgovarajući dokument.

db.Pacijenti.naći ( {
$ili : [
{ Troškovi: { $lt : 6000 } } ,
{ Troškovi: { gt $ : 7000 } }
]
} , {
Ime: jedan ,
Troškovi: jedan
} )

Izlaz prikazuje samo polja 'FirstName' i 'Charges' za podudarne dokumente.

Primjer 6: MongoDB $OR operator bez argumenta

Svi implementirani upiti s operatorom $or prosljeđuju se s vrijednošću argumenta. Sada definiramo upit operatora $or koji ne unosi nikakav argument. Kada se izvrši upit praznog argumenta $ili operatora, on procjenjuje lažne rezultate. Dajemo upit gdje se operacija $or prosljeđuje s praznim izrazom.

db.Pacijenti.agregat (
[
{ $podudaranje : { _iskaznica: { $in : [ ObjectId ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $projekt : {
_id: ID objekta ( '6391c61a4c91e007fb4f0227' ) ,
Proizlaziti: { $ili : [ ] } }
}
]
)

Kao rezultat toga što je operator $or isporučen s praznim argumentom, rezultati iskazuju lažnu vrijednost.

Primjer 7: MongoDB $OR operator odgovara vrijednostima polja

Umetnemo niz 'Test' u dokumente koji imaju različite vrijednosti. Koristimo taj niz za operator $or za ispitivanje rezultata. Operator $or u sljedećem upitu poziva se unutar metode find(). Operator $or uzima niz 'Test' kao izraz. Niz 'Test' koristi operator $in za identifikaciju dokumenata čije vrijednosti polja odgovaraju vrijednostima 'MRI' i 'CT' u nizu.

db.Pacijenti.naći ( { $ili : [ { Test: { $in : [ 'MRI' , 'CT' ] } } ] } ) .prilično ( )

Jedan dokument se prikazuje na ljusci kada se izvrši operator upita $or koji pokazuje da dohvaćeni dokument sadrži navedene vrijednosti niza.

Zaključak

Ovaj MongoDB članak ilustrira upotrebu MongoDB $or operator upita za izvršavanje logičkih ILI operacija na nizu koji uključuje dva ili više izraza kao i za dohvaćanje dokumenata koji odgovaraju barem jednom od izraza. Operator $or postavlja se upit u ljusci MongoDB za izvođenje različitih operacija. Operator $or koristi se u uvjetnim operatorima kao izraz i vraća dokumente na temelju uvjetnih iskaza.