MongoDB VAI operators

Mongodb Vai Operators



Mums ir dažādi loģisko vaicājumu operatori, kas ir pieejami MongoDB, un viens no tiem ir operators $or. Operators MongoDB $or tiek izmantots, lai ieviestu loģisku VAI operāciju masīvā, kurā ir divas vai vairākas izteiksmes, un izgūtu tikai tos dokumentus, kas atbilst kādai no norādītajām izteiksmēm masīvā. Operators $or tiek izmantots, lai vienā vaicājumā atrastu vairākus paziņojumus, izmantojot tikai vienu atbilstošo dokumenta kritēriju. Operators $or atvieglo vairāku taustiņu un vērtību kombināciju.

Kā lietot OR operatoru MongoDB

OR operators MongoDB ir attēlots formātā “$or”. “$or” tiek izmantots, lai kvadrātiekavās iekļautu vairākas izteiksmes, kurās tiek veikta loģiskā VAI darbība. MongoDB kolekcijā mēs izmantojam operatoru $or. Mēs izveidojam MongoDB kolekciju, kuras nosaukums ir 'Pacienti'. Kolekcija “Pacienti” tiek ievietota kopā ar vairākiem dokumentiem, kuriem mēs veicam $or operatoru. Šādi dokumenti tiek ievietoti MongoDB, izsaucot metodi insertMany():

db.Patients.insertMany ( [
{
'Vārds' : 'Dženifera' ,
'Uzvārds' : 'Joshua' ,
'Vecums' : 44 ,
'Telefona numurs' : 43400517 ,
'Pieraksts' : 'Zobārsts' ,
'Maksas' : 2000. gads ,
'Pārbaude' : [ 'Rentgens' , 'Asinis' , 'Pulpal' ]
} ,
{
'Vārds' : 'Tomass' ,
'Uzvārds' : 'Stīvens' ,
'Vecums' : 74 ,
'Telefona numurs' : 39034694 ,
'Tikšanās datums' : 'Ķirurgs' ,
'Maksas' : 6000 ,
'Pārbaude' : [ 'Izvēles' , 'PPT' ]
} ,
{
'Vārds' : 'Čārlzs' ,
'Uzvārds' : 'Daniels' ,
'Vecums' : 35 ,
'Telefona numurs' : 65712165 ,
'Pieraksts' : 'Kardioloģijas ārsts' ,
'Maksas' : 2000. gads ,
'Pārbaude' : [ 'CT' , 'MRI' ]
} ,
{
'Vārds' : 'Mišela' ,
'Uzvārds' : 'Pāvils' ,
'Vecums' : 51 ,
'Telefona numurs' : 54399288 ,
'Pieraksts' : 'Dermatologs' ,
'Maksas' : 8000 ,
'Pārbaude' : [ 'Ādas biopsijas' , 'Koka gaisma' , 'Ādas skrāpēšana' ]
} ,

{
'Vārds' : 'Andrū' ,
'Uzvārds' : 'Džerijs' ,
'Vecums' : 69 ,
'Telefona numurs' : 6108100 ,
'Pieraksts' : 'Kardioloģijas ārsts' ,
'Maksas' : 7000 ,
'Pārbaude' : [ 'EKG' , 'Glikoze asinīs' , 'Ultraskaņa' ]
}
] )

Iepriekš ievietoto dokumentu izvade apstiprina “true” un nodrošina “insertedIds” vērtības katram dokumentam.









1. piemērs: MongoDB $OR operators, lai saskaņotu dokumentus

Šeit ir ieviests MongoDB $or operatora pamata vaicājums, kas parāda šī operatora darbību MongoDB. Šeit mēs definējam vaicājumu ar metodi find(). Find() metode tiek tālāk norādīta ar operatoru $or. Operators $or aizņem divus laukus “Appointment” un “Charges”, kuriem tiek piešķirtas vērtības. Operators $or atbilst lauka vērtībai un izgūst tikai tos dokumentus, kuru vērtības ir saskaņotas ar lauka vērtībām. Operatora $or vaicājuma struktūra ir sniegta šādi:



db.Pacienti.atrast ( { $vai : [ { Pieraksts: 'Dermatologs' } ,
{ Maksas: 7000 } ] } ) .smuki ( )

Mēs atnesam dokumentus, kuru “Pieraksts” ir pie “Dermatologa” un “Maksas” ir “7000”. Operators $or atrod patiesus rezultātus no abām lauka vērtībām un izvadā atgriež atbilstošos dokumentus.





2. piemērs: MongoDB $OR operators, lai saskaņotu neesošos dokumentus

Iepriekšējā operatora $or vaicājumā mēs ienesām atbilstošos dokumentus. Tagad mēs izgūstam neesošo dokumentu no kolekcijas “Pacients”. Šis $or operatora vaicājums ņem dokumentu, kura “FirstName” ir “Charles” un “Tikšanās” ir ar “Ārsta”. Operators $or atbilst šīm lauku vērtībām kolekcijā “Pacienti” un pēc saskaņošanas ģenerē rezultātus.



db.Pacienti.atrast ( { $vai : [ { 'Vārds' : 'Čārlzs' } , { 'Pieraksts' : 'Ārsts' } ] } ) .smuki ( )

Operatoram $or ir viens patiess rezultāts, bet otram ir nepatiess rezultāts. Tā kā mēs norādām “Tikšanās” ar vērtību “Ārsts”, kas neatbilst nevienam no kolekcijā “Pacients” esošajiem dokumentiem. Tāpēc operators $or kā izvadi atgriež tikai atbilstošā lauka dokumentu, kas ir “Pacients”.

3. piemērs: MongoDB $OR operators ar vairākiem argumentiem

Iepriekšējos $or operatora vaicājumos mēs sniedzām divus argumentus. Šeit mēs nododam vairāk nekā divus argumentus kā $ vai operatora izteiksmi. Mēs izgūstam dokumentu, kas atbilst kādai no tam piešķirtajām lauka “Vecums” vērtībām. $or operatora prasība ir vienāda vairākiem argumentiem, lai vienai no izteiksmēm būtu jābūt patiesai. Vairāku argumentu vaicājums operatorā $or tiek sniegts šādi:

db.Pacienti.atrast ( { 'Pieraksts' : 'Kardioloģijas ārsts' , $vai : [ { 'Vecums' : divdesmit } , { 'Vecums' : 35 } , { 'Vecums' : 69 } ] } )

Tur mums ir divi atbilstoši rezultāti, kas iegūti no operatora $or. “Vecuma” vērtības, kas ir “35” un “69”, tiek salīdzinātas ar “Pacientu” dokumentiem, ko iegūst $ vai operators un kas tiek parādīti apvalkā.

4. piemērs: MongoDB $OR operators ar apkopošanu

MongoDB apkopošanas metode apvieno ierakstus kolekcijā. Tāpēc tos var izmantot dažādām operācijām. Mēs veicam operatoru $or agregācijas metodē, kas novērtē vienu vai vairākas izteiksmes un atgriež patiesu, ja kāda no tām novērtē kā patiesa. Pretējā gadījumā apgalvojums tiek uzskatīts par nepatiesu.

Iegūsim operatora $or agregation vaicājumu, kurā vispirms izsaucam aggregate() metodi, kas pēc tam izvieto $match un $projektu, kas ir norādīts ar _id vērtību, kas jāsaskaņo no dokumenta. Pēc tam mēs iestatām lauku “Vecums” ar vērtību “1”, jo mēs vēlamies, lai šis lauks tiktu ģenerēts tikai no visiem dokumentiem. Pēc tam mēs definējam atribūtu “Results”, kam ir $or darbība. Operators $or izmanto nosacīto paziņojumu par $gt. Izteiksme “$gt:[“$Age”, 69]” norāda vecumu, kura vērtība ir lielāka par “69”. Šīs izteiksmes rezultāti tiek nodoti operatoram $or, un operators $or atgriež dokumentu, kas atbilst norādītajam nosacījumam.

db.Pacienti.agregāts (
[
{ $match : { _id: objekta ID ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $projekts : {
_id: objekta ID ( '6391c61a4c91e007fb4f0227' ) ,
Vecums: viens ,
Rezultāts: { $vai : [
{ $gt : [ ' $Vecums ' , 69 ] }
] }
}
}
]
)

“Vecums”, kas ir lielāks par “69”, ir “74”, kas tiek parādīts izvades apvalkā kopā ar “Results”, kam ir “patiesā” vērtība.

5. piemērs: MongoDB $OR operators izsauc nosacījumus

MongoDB operators $ or ir loģisks operators. Mēs varam izmantot šo loģisko operatoru ar nosacījumu operatoru. Operators $or atgriež rezultātus, kad nosacījumi ir izpildīti. Turklāt operatorā $or varam izsaukt vairāk nekā vienu nosacījumu, no kuriem vienam ir jābūt patiesam. Šeit mums ir vaicājums $or operatoram, kas ir norādīts ar diviem dažādiem nosacījumiem. Pirmais nosacījums ir “{Charges:{$lt: 6000}}”, kas atgriež dokumentu, kas ir mazāks par “Charges” vērtību “6000”. Nosacījums {Charges:“$gt: 7000”} iegūst dokumentu, kas ir lielāks par “Charges” vērtību “7000”.

Operators $or sniedz atbilstošo dokumentu, kad šie nosacījumi ir izpildīti. Pēc tam mēs norādām to lauku nosaukumus, kas tiek rādīti tikai tad, kad operators $or piešķir atbilstošo dokumentu.

db.Pacienti.atrast ( {
$vai : [
{ Maksas: { $ lt : 6000 } } ,
{ Maksas: { $gt : 7000 } }
]
} , {
Vārds: viens ,
Maksas: viens
} )

Izvadē tiek parādīti tikai atbilstošo dokumentu lauki “FirstName” un “Charges”.

6. piemērs: MongoDB $OR operators bez argumenta

Visi ieviestie vaicājumi ar operatoru $or tiek nodoti ar argumenta vērtību. Tagad mēs definējam $ vai operatora vaicājumu, kas neievada argumentu. Kad tiek izpildīts tukšs arguments $vai operatora vaicājums, tas novērtē nepatiesos rezultātus. Mēs sniedzam vaicājumu, kur operācija $or tiek nodota ar tukšu izteiksmi.

db.Pacienti.agregāts (
[
{ $match : { _id: { $in : [ Objekta ID ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $projekts : {
_id: objekta ID ( '6391c61a4c91e007fb4f0227' ) ,
Rezultāts: { $vai : [ ] } }
}
]
)

Tā kā operatoram $or tiek pievienots tukšs arguments, rezultātos ir norādīta nepatiesa vērtība.

7. piemērs: MongoDB $OR operators atbilst masīva vērtībām

Mēs ievietojam masīvu “Test” dokumentos, kuriem ir dažādas vērtības. Mēs izmantojam šo masīvu operatoram $or, lai pārbaudītu rezultātus. Operators $or nākamajā vaicājumā tiek izsaukts find() metodes ietvaros. Operators $or izmanto masīvu “Test” kā izteiksmi. Masīvs “Test” izmanto operatoru $in, lai identificētu dokumentus, kuru lauka vērtības atbilst masīva “MRI” un “CT” vērtībām.

db.Pacienti.atrast ( { $vai : [ { Pārbaude: { $in : [ 'MRI' , 'CT' ] } } ] } ) .smuki ( )

Viens dokuments tiek parādīts apvalkā, kad tiek izpildīts operators $ vai vaicājums, kas parāda, ka izgūtajā dokumentā ir norādītās masīva vērtības.

Secinājums

Šis MongoDB raksts ilustrē MongoDB $ vai operatora vaicājuma izmantošanu, lai izpildītu loģiskās VAI darbības masīvā, kas ietver divas vai vairākas izteiksmes, kā arī lai izgūtu dokumentus, kas atbilst vismaz vienai no izteiksmēm. Operators $or tiek vaicāts MongoDB apvalkā, lai veiktu dažādas darbības. Operators $or tiek izmantots nosacījuma operatoros kā izteiksme un atgriež dokumentus, pamatojoties uz nosacījumu priekšrakstiem.