MongoDB O Operator

Mongodb O Operator



Mayroon kaming iba't ibang logical query operator na available sa MongoDB, at isa sa mga ito ay ang $or operator. Ang operator ng MongoDB $or ay ginagamit upang magpatupad ng isang lohikal na OR na operasyon sa isang array na naglalaman ng dalawa o higit pang mga expression at kunin lamang ang mga dokumentong iyon na tumutugma sa alinman sa mga tinukoy na expression sa array. Ang $or operator ay ginagamit upang maghanap ng maramihang mga pahayag sa isang query na may isang tugmang pamantayan ng dokumento lamang. Pinapadali ng $or operator ang kumbinasyon ng ilang key at value.

Paano Gamitin ang OR Operator sa MongoDB

Ang OR operator sa MongoDB ay kinakatawan sa '$or' na format. Ang '$or' ay ginagamit upang ilakip ang maramihang mga expression sa mga square bracket kung saan ginaganap ang lohikal na OR na operasyon. Ginagamit namin ang $or operator sa koleksyon ng MongoDB. Ginagawa namin ang koleksyon ng MongoDB na pinamagatang 'Mga Pasyente'. Ang koleksyon ng 'Mga Pasyente' ay inilalagay kasama ng maraming mga dokumento kung saan namin ginagawa ang $or operator. Ang mga sumusunod na dokumento ay ipinasok sa MongoDB sa pamamagitan ng paggamit ng insertMany() na pamamaraan:

db.Patients.insertMany ( [
{
'Pangalan' : 'Jennifer' ,
'Huling pangalan' : 'Joshua' ,
'Edad' : 44 ,
'Numero ng telepono' : 43400517 ,
'appointment' : 'Dentista' ,
'Singil' : 2000 ,
'Pagsusulit' : [ 'X-ray' , 'Dugo' , 'Pulpal' ]
} ,
{
'Pangalan' : 'Thomas' ,
'Huling pangalan' : 'Steven' ,
'Edad' : 74 ,
'Numero ng telepono' : 39034694 ,
'Petsa ng Appointment' : 'Surgeon' ,
'Singil' : 6000 ,
'Pagsusulit' : [ 'Elective' , 'PPT' ]
} ,
{
'Pangalan' : 'Charles' ,
'Huling pangalan' : 'Daniel' ,
'Edad' : 35 ,
'Numero ng telepono' : 65712165 ,
'appointment' : 'Doktor ng Cardiology' ,
'Singil' : 2000 ,
'Pagsusulit' : [ 'CT' , 'MRI' ]
} ,
{
'Pangalan' : 'Michelle' ,
'Huling pangalan' : 'Paul' ,
'Edad' : 51 ,
'Numero ng telepono' : 54399288 ,
'appointment' : 'Dermatologist' ,
'Singil' : 8000 ,
'Pagsusulit' : [ 'Mga Biopsy sa Balat' , 'Ilaw na Kahoy' , 'Pag-scrape ng Balat' ]
} ,

{
'Pangalan' : 'Andrew' ,
'Huling pangalan' : 'Jerry' ,
'Edad' : 69 ,
'Numero ng telepono' : 6108100 ,
'appointment' : 'Doktor ng Cardiology' ,
'Singil' : 7000 ,
'Pagsusulit' : [ 'ECG' , 'Glucose ng Dugo' , 'Ultrasound' ]
}
] )

Kinikilala ng output ng mga naunang ipinasok na dokumento ang 'totoo' at nagbibigay ng mga halaga ng 'insertedIds' para sa bawat dokumento.









Halimbawa 1: MongoDB $OR Operator na Itugma ang mga Dokumento

Ang pangunahing query ng MongoDB $or operator ay ipinatupad dito na nagpapakita ng paggana ng operator na ito sa MongoDB. Dito, tinutukoy namin ang isang query gamit ang find() method. Ang find() na paraan ay karagdagang tinukoy sa $or operator. Ang operator ng $or ay kumukuha ng dalawang field, 'Paghirang' at 'Mga Pagsingil', na itinalaga kasama ng mga halaga. Ang $or operator ay tumutugma sa halaga ng field at kinukuha lamang ang mga dokumentong iyon na ang mga halaga ay tumugma sa mga halaga ng field. Ang istraktura ng query ng $or operator ay ibinigay sa sumusunod:



db.Mga pasyente.hanapin ( { $o : [ { appointment: 'Dermatologist' } ,
{ Singil: 7000 } ] } ) .maganda ( )

Kinukuha namin ang mga dokumento na ang 'Paghirang' ay kasama ng 'Dermatologist' at ang 'Mga Singil' ay '7000'. Ang $or operator ay nakakahanap ng mga totoong resulta mula sa parehong mga halaga ng field at ibinabalik ang mga katugmang dokumento sa output.





Halimbawa 2: MongoDB $OR Operator na Itugma ang Mga Hindi Umiiral na Dokumento

Sa nakaraang query ng $or operator, kinuha namin ang mga katugmang dokumento. Ngayon, kinukuha namin ang hindi umiiral na dokumento mula sa koleksyon ng 'Pasyente'. Ang sumusunod na $or operator query ay kumukuha ng dokumento na ang 'FirstName' ay 'Charles' at ang 'Appointment' ay kasama ng 'Physician'. Ang $or operator ay tumutugma sa mga value ng field na ito sa loob ng koleksyon ng 'Mga Pasyente' at bumubuo ng mga resulta pagkatapos ng pagtutugma.



db.Mga pasyente.hanapin ( { $o : [ { 'Pangalan' : 'Charles' } , { 'appointment' : 'Doktor' } ] } ) .maganda ( )

Ang $or operator ay may isang tunay na resulta at ang isa ay may maling resulta. Habang tinutukoy namin ang 'Paghirang' na may halagang 'Doktor' na hindi tumutugma sa alinman sa mga dokumento sa koleksyon ng 'Pasyente.' Kaya naman, ibinabalik lamang ng $or operator ang dokumento ng katugmang field na 'Patient' bilang output.

Halimbawa 3: Operator ng MongoDB $OR na may Maramihang Mga Argumento

Nagbigay kami ng dalawang argumento sa mga nakaraang $or mga query ng operator. Dito, ipinapasa namin ang higit sa dalawang argumento bilang $o operator expression. Kinukuha namin ang dokumentong tumutugma sa alinman sa mga value ng field na 'Edad' na ibinigay dito. Ang $or operator na kinakailangan ay pareho para sa maramihang mga argumento na ang isa sa mga expression ay dapat na totoo. Ang query para sa maramihang mga argumento sa $or operator ay ibinibigay bilang mga sumusunod:

db.Mga pasyente.hanapin ( { 'appointment' : 'Doktor ng Cardiology' , $o : [ { 'Edad' : dalawampu } , { 'Edad' : 35 } , { 'Edad' : 69 } ] } )

Doon, mayroon kaming dalawang magkatugmang resulta na nakuha mula sa $or operator. Ang mga halaga ng 'Edad' na '35' at '69' ay inihambing sa mga dokumento ng 'Mga Pasyente' na nakuha ng $or operator at ipinapakita sa shell.

Halimbawa 4: Operator ng MongoDB $OR na may Pagsasama-sama

Pinagsasama ng pinagsama-samang paraan sa MongoDB ang mga tala sa isang koleksyon. Samakatuwid, maaari silang magamit para sa iba't ibang mga operasyon. Isinasagawa namin ang $or operator sa paraan ng pagsasama-sama na sinusuri ang isa o higit pang mga expression at nagbabalik ng true kung alinman sa mga ito ang nagsusuri sa true. Kung hindi, ang pahayag ay itinuturing na mali.

Magkaroon tayo ng $or aggregation operator query kung saan una nating ginagamit ang aggregate() method na nagde-deploy ng $match at ang $project na tinukoy sa _id value na itugma mula sa dokumento. Pagkatapos, itinakda namin ang field na 'Edad' na may halagang '1' dahil gusto lang naming mabuo ang field na ito mula sa lahat ng mga dokumento. Pagkatapos nito, tinukoy namin ang katangiang 'Mga Resulta' na mayroong $or operation. Kinukuha ng $or operator ang conditional statement ng $gt. Ang expression na “$gt:[“$Edad”, 69]” ay nagbibigay ng edad na ang halaga ay mas malaki kaysa sa “69”. Ang mga resulta para sa expression na ito ay ipinapasa sa $or operator at ibinalik ng $or operator ang dokumentong nakakatugon sa tinukoy na kundisyon.

db.Patients.aggregate (
[
{ $match : { _id: ObjectId ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $proyekto : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
Edad: isa ,
Resulta: { $o : [
{ $gt : [ ' $Edad ' , 69 ] }
] }
}
}
]
)

Ang 'Edad' na mas malaki kaysa sa '69' ay '74' na ipinapakita sa output shell kasama ang 'Mga Resulta' na may 'tunay' na halaga.

Halimbawa 5: MongoDB $OR Operator Invokes the Conditions

Ang $or operator ng MongoDB ay isang lohikal na operator. Magagamit natin ang lohikal na operator na ito sa conditional operator. Ibinabalik ng $or operator ang mga resulta kapag nasiyahan ang mga kundisyon. Bilang karagdagan, maaari tayong gumamit ng higit sa isang kundisyon sa $or operator kung saan dapat totoo ang isa. Dito, mayroon kaming query ng $or operator na tinukoy sa dalawang magkaibang kundisyon. Ang unang kundisyon ay “{Charges:{$lt: 6000}}” na nagbabalik ng dokumentong mas mababa kaysa sa “Charges” value na “6000”. Nakukuha ng kundisyong {Charges:“$gt: 7000”} ang dokumentong mas malaki kaysa sa value ng “Charges” na “7000”.

Ang $or operator ay nagbibigay ng katugmang dokumento kapag nasiyahan ang mga kundisyong ito. Pagkatapos, tinukoy namin ang mga pangalan ng mga patlang na ipinapakita lamang kapag ibinigay ng operator ng $or ang katugmang dokumento.

db.Mga pasyente.hanapin ( {
$o : [
{ Singil: { $lt : 6000 } } ,
{ Singil: { $gt : 7000 } }
]
} , {
Pangalan: isa ,
Singil: isa
} )

Ang output ay nagpapakita lamang ng 'FirstName' at 'Charges' na mga field para sa mga katugmang dokumento.

Halimbawa 6: Operator ng MongoDB $OR na Walang Argumento

Ang lahat ng ipinatupad na mga query sa operator na $or ay ipinasa kasama ang halaga ng argumento. Ngayon, tinutukoy namin ang $or operator query na walang input na argumento. Kapag ang walang laman na argumento $or operator query ay naisakatuparan, sinusuri nito ang mga maling resulta. Nagbibigay kami ng query kung saan ipinapasa ang $or operation na may walang laman na expression.

db.Patients.aggregate (
[
{ $match : { _id: { $in : [ ObjectId ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $proyekto : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
Resulta: { $o : [ ] } }
}
]
)

Bilang resulta ng ang $or operator ay binibigyan ng walang laman na argumento, ang mga resulta ay nagsasaad ng maling halaga.

Halimbawa 7: Tumutugma ang Operator ng MongoDB $OR sa Mga Halaga ng Array

Inilalagay namin ang array na 'Pagsubok' sa mga dokumento na may iba't ibang mga halaga. Ginagamit namin ang array na iyon para sa $or operator upang suriin ang mga resulta. Ang $or operator sa sumusunod na query ay ini-invoke sa loob ng find() method. Kinukuha ng operator ng $or ang array na 'Test' bilang expression. Ginagamit ng array na 'Test' ang $in operator upang tukuyin ang mga dokumento na ang mga value ng field ay tumutugma sa mga value ng 'MRI' at 'CT' sa array.

db.Patients.hanapin ( { $o : [ { Pagsusulit: { $in : [ 'MRI' , 'CT' ] } } ] } ) .maganda ( )

Ang isang dokumento ay ipinapakita sa shell kapag ang $or query operator ay pinaandar na nagpapakita na ang nakuhang dokumento ay naglalaman ng mga tinukoy na halaga ng array.

Konklusyon

Ang artikulong ito ng MongoDB ay naglalarawan ng paggamit ng isang MongoDB $or operator query upang isagawa ang mga lohikal na OR na operasyon sa isang array na may kasamang dalawa o higit pang mga expression pati na rin upang kunin ang mga dokumentong tumutugma sa kahit isa sa mga expression. Ang $or operator ay tinanong sa MongoDB shell upang magsagawa ng iba't ibang mga operasyon. Ang $or operator ay ginagamit sa mga conditional operator bilang isang expression at ibinabalik ang mga dokumento batay sa mga conditional na pahayag.