Operator MongoDB OR

Operator Mongodb Or



Imamo različne operaterje logičnih poizvedb, ki so na voljo v MongoDB, in eden od njih je operator $or. Operator MongoDB $or se uporablja za izvajanje logične operacije ALI na matriki, ki vsebuje dva ali več izrazov, in pridobivanje samo tistih dokumentov, ki se ujemajo s katerim koli od navedenih izrazov v matriki. Operator $or se uporablja za iskanje več stavkov v eni sami poizvedbi s samo enim ujemajočim se kriterijem dokumenta. Operator $or olajša kombinacijo več ključev in vrednosti.

Kako uporabljati operator OR v MongoDB

Operator OR v MongoDB je predstavljen v obliki »$or«. »$or« se uporablja za zapiranje več izrazov v oglate oklepaje, na katerih se izvaja logična operacija ALI. V zbirki MongoDB uporabljamo operator $or. Ustvarimo zbirko MongoDB z naslovom »Pacienti«. Zbirka »Pacienti« je vstavljena z več dokumenti, na katerih izvajamo operator $or. Naslednji dokumenti so vstavljeni v MongoDB s klicem metode insertMany():

db.Patients.insertMany ( [
{
'Ime' : 'Jennifer' ,
'Priimek' : 'Jošua' ,
'starost' : 44 ,
'Telefonska številka' : 43400517 ,
'Sestanek' : 'Zobozdravnik' ,
'Stroški' : 2000 ,
'test' : [ 'rentgen' , 'Kri' , 'Pulpal' ]
} ,
{
'Ime' : 'Thomas' ,
'Priimek' : 'Steven' ,
'starost' : 74 ,
'Telefonska številka' : 39034694 ,
'Datum sestanka' : 'Kirurg' ,
'Stroški' : 6000 ,
'test' : [ 'izbirni' , 'PPT' ]
} ,
{
'Ime' : 'Charles' ,
'Priimek' : 'Danijel' ,
'starost' : 35 ,
'Telefonska številka' : 65712165 ,
'Sestanek' : 'Zdravnik kardiologije' ,
'Stroški' : 2000 ,
'test' : [ 'CT' , 'MRI' ]
} ,
{
'Ime' : 'Michelle' ,
'Priimek' : 'Pavel' ,
'starost' : 51 ,
'Telefonska številka' : 54399288 ,
'Sestanek' : 'Dermatolog' ,
'Stroški' : 8000 ,
'test' : [ 'Biopsije kože' , 'Lesna luč' , 'Strganje kože' ]
} ,

{
'Ime' : 'Andrej' ,
'Priimek' : 'Jerry' ,
'starost' : 69 ,
'Telefonska številka' : 6108100 ,
'Sestanek' : 'Zdravnik kardiologije' ,
'Stroški' : 7000 ,
'test' : [ 'EKG' , 'Glukoza v krvi' , 'ultrazvok' ]
}
] )

Izhod predhodno vstavljenih dokumentov potrjuje »true« in zagotavlja vrednosti »insertedIds« za vsak dokument.









Primer 1: MongoDB $OR Operator za ujemanje z dokumenti

Tukaj je implementirana osnovna poizvedba operaterja MongoDB $or, ki prikazuje delovanje tega operaterja v MongoDB. Tukaj definiramo poizvedbo z metodo find(). Metoda find() je dodatno določena z operatorjem $or. Operator $or zavzame dve polji, »Sestanek« in »Stroški«, ki sta jima dodeljeni vrednosti. Operator $or se ujema z vrednostjo polja in pridobi samo tiste dokumente, katerih vrednosti se ujemajo z vrednostmi polja. Struktura poizvedbe operatorja $or je podana v naslednjem:



db.Patients.find ( { $ali : [ { termin: 'Dermatolog' } ,
{ Stroški: 7000 } ] } ) .lepa ( )

Pridobimo dokumente, katerih 'Sestanek' je pri 'Dermatologu' in katerih 'Stroški' so '7000'. Operator $or najde prave rezultate iz obeh vrednosti polj in v izhodu vrne ujemajoče se dokumente.





Primer 2: Operator MongoDB $OR za ujemanje z neobstoječimi dokumenti

V prejšnji poizvedbi operatorja $or smo pridobili ujemajoče se dokumente. Sedaj pridobimo neobstoječi dokument iz zbirke 'Pacient'. Naslednja poizvedba operatorja $or vzame dokument, katerega »FirstName« je »Charles«, »Appointment« pa je pri »Physician«. Operator $or se ujema s temi vrednostmi polj v zbirki »Bolniki« in po ujemanju ustvari rezultate.



db.Patients.find ( { $ali : [ { 'Ime' : 'Charles' } , { 'Sestanek' : 'Zdravnik' } ] } ) .lepa ( )

Operator $or ima en pravi rezultat, drugi pa napačen rezultat. Ker določimo »Sestanek« z vrednostjo »Zdravnik«, ki se ne ujema z nobenim dokumentom v zbirki »Pacient«. Zato operator $or kot izhod vrne samo dokument ujemajočega se polja, ki je »Pacient«.

3. primer: MongoDB operator $OR z več argumenti

V prejšnjih poizvedbah operatorja $or smo podali dva argumenta. Tukaj posredujemo več kot dva argumenta kot operatorski izraz $or. Pridobimo dokument, ki se ujema s katero koli vrednostjo polja »Starost«, ki mu je podana. Zahteva za operator $or je enaka za več argumentov, da mora biti eden od izrazov resničen. Poizvedba za več argumentov v operatorju $or je podana takole:

db.Patients.find ( { 'Sestanek' : 'Zdravnik kardiologije' , $ali : [ { 'starost' : dvajset } , { 'starost' : 35 } , { 'starost' : 69 } ] } )

Tam imamo dva ujemajoča se rezultata, ki ju dobimo iz operatorja $or. Vrednosti »Starost«, ki sta »35« in »69«, se primerjata z dokumenti »Bolniki«, ki jih pridobi operater $or in so prikazani na lupini.

Primer 4: MongoDB $OR Operator z združevanjem

Metoda združevanja v MongoDB združuje zapise v zbirko. Zato jih je mogoče uporabiti za različne operacije. Izvedemo operator $or v metodi združevanja, ki ovrednoti enega ali več izrazov in vrne true, če je kateri koli od njih ovrednoten kot true. V nasprotnem primeru se izjava šteje za napačno.

Vzemimo poizvedbo operatorja združevanja $or, pri kateri najprej pokličemo metodo aggregate(), ki nato razmesti $match in $project, ki je določen z vrednostjo _id, ki se ujema iz dokumenta. Nato nastavimo polje »Starost« z vrednostjo »1«, ker želimo samo, da se to polje ustvari iz vseh dokumentov. Po tem definiramo atribut »Rezultati«, ki ima operacijo $or. Operator $or sprejme pogojni stavek $gt. Izraz “$gt:[“$Age”, 69]” daje starost, katere vrednost je večja od “69”. Rezultati za ta izraz se posredujejo operatorju $or in operator $or vrne dokument, ki izpolnjuje podani pogoj.

db.Patients.aggregate (
[
{ $match : { _id: ID predmeta ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $projekt : {
_id: ID predmeta ( '6391c61a4c91e007fb4f0227' ) ,
starost: eno ,
rezultat: { $ali : [
{ $gt : [ ' $Starost ' , 69 ] }
] }
}
}
]
)

»Starost«, ki je večja od »69«, je »74«, ki je prikazana v izhodni lupini skupaj z »Rezultati«, ki ima vrednost »true«.

Primer 5: Operator $OR MongoDB prikliče pogoje

Operator $or MongoDB je logični operator. Ta logični operator lahko uporabimo s pogojnim operatorjem. Operator $or vrne rezultate, ko so pogoji izpolnjeni. Poleg tega lahko v operatorju $or prikličemo več kot en pogoj, od katerih mora biti eden resničen. Tukaj imamo poizvedbo operatorja $or, ki je podana z dvema različnima pogojema. Prvi pogoj je »{Charges:{$lt: 6000}}«, ki vrne dokument, ki je nižji od vrednosti »Charges« »6000«. Pogoj {Charges:“$gt: 7000”} dobi dokument, ki je večji od vrednosti “Charges” za “7000”.

Operator $or poda ujemajoči se dokument, ko so ti pogoji izpolnjeni. Nato določimo imena polj, ki so prikazana le, ko operator $or poda ujemajoči se dokument.

db.Patients.find ( {
$ali : [
{ Stroški: { $lt : 6000 } } ,
{ Stroški: { $gt : 7000 } }
]
} , {
Ime: eno ,
Stroški: eno
} )

Izhod prikaže samo polji »FirstName« in »Charges« za ujemajoče se dokumente.

Primer 6: MongoDB $OR operator brez argumenta

Vse implementirane poizvedbe z operatorjem $or so posredovane z vrednostjo argumenta. Sedaj definiramo operatorsko poizvedbo $or, ki ne vnese nobenega argumenta. Ko se izvede poizvedba s praznim argumentom $ali operator, ovrednoti napačne rezultate. Podamo poizvedbo, kjer je operacija $or posredovana s praznim izrazom.

db.Patients.aggregate (
[
{ $match : { _id: { $in : [ ObjectId ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $projekt : {
_id: ID predmeta ( '6391c61a4c91e007fb4f0227' ) ,
rezultat: { $ali : [ ] } }
}
]
)

Ker je operatorju $or na voljo prazen argument, rezultati navajajo napačno vrednost.

Primer 7: Operator MongoDB $OR se ujema z vrednostmi polja

Matriko »Test« vstavimo v dokumente, ki imajo različne vrednosti. To matriko uporabimo za operator $or za pregled rezultatov. Operator $or v naslednji poizvedbi je priklican znotraj metode find(). Operator $or vzame matriko »Test« kot izraz. Matrika »Test« uporablja operator $in za identifikacijo dokumentov, katerih vrednosti polja se ujemajo z vrednostma »MRI« in »CT« v matriki.

db.Patients.find ( { $ali : [ { Test: { $in : [ 'MRI' , 'CT' ] } } ] } ) .lepa ( )

En dokument je prikazan na lupini, ko se izvede operator poizvedbe $or, ki pokaže, da pridobljeni dokument vsebuje podane vrednosti polja.

Zaključek

Ta članek MongoDB ponazarja uporabo poizvedbe operaterja $or MongoDB za izvajanje logičnih operacij ALI na matriki, ki vključuje dva ali več izrazov, kot tudi za pridobivanje dokumentov, ki se ujemajo z vsaj enim od izrazov. Operator $or se poizveduje v lupini MongoDB za izvajanje različnih operacij. Operator $or se uporablja v pogojnih operatorjih kot izraz in vrne dokumente na podlagi pogojnih stavkov.