MongoDB VÕI operaator

Mongodb Voi Operaator



Meil on MongoDB-s saadaval erinevaid loogilisi päringuoperaatoreid ja üks neist on operaator $or. Operaatorit MongoDB $or kasutatakse loogilise VÕI-toimingu rakendamiseks massiivis, mis sisaldab kahte või enamat avaldist, ja hankida ainult need dokumendid, mis vastavad massiivi ühele määratud avaldisele. Operaatorit $or kasutatakse mitme avalduse leidmiseks ühest päringust vaid ühe sobiva dokumendikriteeriumiga. Operaator $or hõlbustab mitme klahvi ja väärtuse kombineerimist.

Kuidas kasutada OR-operaatorit MongoDB-s

Operaator VÕI on MongoDB-s esitatud vormingus '$or'. Märgistust „$või” kasutatakse mitme avaldise lisamiseks nurksulgudesse, millega loogiline VÕI-operatsioon sooritatakse. Kasutame MongoDB kogus operaatorit $or. Loome MongoDB kollektsiooni, mille pealkiri on 'Patsiendid'. Kogumik „Patsiendid” lisatakse mitme dokumendiga, millele me sooritame operaatori $or. Järgmised dokumendid lisatakse MongoDB-sse meetodi insertMany() abil:

db.Patients.insertMany ( [
{
'Eesnimi' : 'Jennifer' ,
'Perekonnanimi' : 'Joshua' ,
'vanus' : 44 ,
'Telefoninumber' : 43400517 ,
'Kohtumine' : 'Hambaarst' ,
'Süüdistused' : 2000 ,
'Test' : [ 'röntgenikiirgus' , 'Veri' , 'Pulpal' ]
} ,
{
'Eesnimi' : 'Thomas' ,
'Perekonnanimi' : 'Steven' ,
'vanus' : 74 ,
'Telefoninumber' : 39034694 ,
'Kohtumise kuupäev' : 'kirurg' ,
'Süüdistused' : 6000 ,
'Test' : [ 'Valikaine' , 'PPT' ]
} ,
{
'Eesnimi' : 'Charles' ,
'Perekonnanimi' : 'Daniel' ,
'vanus' : 35 ,
'Telefoninumber' : 65712165 ,
'Kohtumine' : 'Kardioloogia arst' ,
'Süüdistused' : 2000 ,
'Test' : [ 'CT' , 'MRI' ]
} ,
{
'Eesnimi' : 'Michelle' ,
'Perekonnanimi' : 'Paul' ,
'vanus' : 51 ,
'Telefoninumber' : 54399288 ,
'Kohtumine' : 'dermatoloog' ,
'Süüdistused' : 8000 ,
'Test' : [ 'Naha biopsia' , 'Puuvalgus' , 'Naha kraapimine' ]
} ,

{
'Eesnimi' : 'Andrew' ,
'Perekonnanimi' : 'Jerry' ,
'vanus' : 69 ,
'Telefoninumber' : 6108100 ,
'Kohtumine' : 'Kardioloogia arst' ,
'Süüdistused' : 7000 ,
'Test' : [ 'EKG' , 'Vere glükoos' , 'Ultraheli' ]
}
] )

Varem sisestatud dokumentide väljund kinnitab 'tõene' ja annab iga dokumendi jaoks 'insertedIds' väärtused.









Näide 1: MongoDB $OR operaator dokumentide sobitamiseks

Siin on realiseeritud MongoDB $or operaatori põhipäring, mis näitab selle operaatori tööd MongoDB-s. Siin määratleme päringu meetodi find() abil. Find() meetodit täpsustatakse veel operaatoriga $or. Operaator $or võtab kaks välja, 'Kohtumine' ja 'Tasud', mis on määratud väärtustega. Operaator $or vastab välja väärtusele ja toob välja ainult need dokumendid, mille väärtused on vastavuses välja väärtustega. Operaatori $or päringu struktuur on esitatud järgmiselt:



db.Patsiendid.leida ( { $või : [ { Kohtumine: 'dermatoloog' } ,
{ Süüdistused: 7000 } ] } ) . ilus ( )

Toome ära dokumendid, mille “Vastuvõtt” on “Nahaarsti” ja mille “Tasud” on “7000”. Operaator $or leiab mõlema välja väärtusest tõesed tulemused ja tagastab väljundis sobitatud dokumendid.





Näide 2: MongoDB $OR operaator, mis sobitab olematuid dokumente

Eelmises operaatori $or päringus tõime kokku sobitatud dokumendid. Nüüd otsime olematu dokumendi kogust “Patsient”. Järgmine $or operaatori päring võtab dokumendi, mille 'Eesnimi' on 'Charles' ja 'Kohtumine' on 'Arstiga'. Operaator $or sobitab need välja väärtused kogus „Patsients” ja genereerib tulemused pärast sobitamist.



db.Patsiendid.leida ( { $või : [ { 'Eesnimi' : 'Charles' } , { 'Kohtumine' : 'Arst' } ] } ) . ilus ( )

Operaatoril $or on üks tõene ja teisel vale tulemus. Kuna määrame 'Kohtumine' väärtusega 'Arst', mis ei ühti ühegi kogus 'Patsiendi' oleva dokumendiga. Seetõttu tagastab operaator $or ainult sobitatud välja dokumendi, mille väljundiks on 'Patsit'.

Näide 3: MongoDB $OR operaator mitme argumendiga

Esitasime eelmistes $or operaatori päringutes kaks argumenti. Siin edastame rohkem kui kaks argumenti operaatori $või avaldisena. Toome välja dokumendi, mis vastab mis tahes sellele antud välja „Vanus” väärtusele. $or operaatori nõue on sama mitme argumendi jaoks, et üks avaldistest peaks olema tõene. Päring mitme argumendi kohta operaatoris $or on esitatud järgmiselt:

db.Patsiendid.leida ( { 'Kohtumine' : 'Kardioloogia arst' , $või : [ { 'vanus' : kakskümmend } , { 'vanus' : 35 } , { 'vanus' : 69 } ] } )

Seal on meil kaks sobitatud tulemust, mis saadakse operaatorilt $or. 'Vanuse' väärtusi, mis on '35' ja '69', võrreldakse dokumentidega 'Patsients', mille on hankinud operaator $or ja mis kuvatakse kestal.

Näide 4: MongoDB $OR operaator koos koondamisega

MongoDB koondamismeetod ühendab kirjed kogumiks. Seetõttu saab neid kasutada erinevateks operatsioonideks. Teostame liitmismeetodis operaatori $or, mis hindab ühte või mitut avaldist ja tagastab tõene, kui mõni neist hindab tõeseks. Vastasel juhul loetakse väide valeks.

Tehkem operaatori $or aggregation päring, kus me käivitame esmalt meetodi aggregate(), mis seejärel juurutab $match ja $projekti, mis on määratud _id väärtusega, mis tuleb dokumendist sobitada. Seejärel määrame välja 'Vanus' väärtusega '1', kuna tahame, et see väli genereeritaks ainult kõigist dokumentidest. Pärast seda määratleme atribuudi 'Results', millel on $or tehing. Operaator $or võtab tingimuslause $gt. Avaldis „$gt:[“$Age”, 69]” annab vanuse, mille väärtus on suurem kui „69”. Selle avaldise tulemused edastatakse operaatorile $or ja operaator $or tagastab dokumendi, mis vastab määratud tingimusele.

db.Patients.agregate (
[
{ $match : { _id: ObjectId ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $projekt : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
Vanus: üks ,
Tulemus: { $või : [
{ $gt : [ ' $ Vanus ' , 69 ] }
] }
}
}
]
)

'Vanus', mis on suurem kui '69', on '74', mis kuvatakse väljundkestas koos 'Results' väärtusega, millel on 'tõene' väärtus.

Näide 5: MongoDB $OR operaator kutsub esile tingimused

MongoDB operaator $or on loogiline operaator. Seda loogilist operaatorit saame kasutada tingimusliku operaatoriga. Operaator $or tagastab tulemused, kui tingimused on täidetud. Lisaks saame operaatoris $or kutsuda esile rohkem kui ühe tingimuse, millest üks peab olema tõene. Siin on operaatori $or päring, mis on määratud kahe erineva tingimusega. Esimene tingimus on '{Charges:{$lt: 6000}}', mis tagastab dokumendi, mis on väiksem kui 'Charges' väärtus '6000'. Tingimus {Charges:'$gt: 7000'} hangib dokumendi, mis on suurem kui 'Charges' väärtus '7000'.

Operaator $or annab sobitatud dokumendi, kui need tingimused on täidetud. Seejärel määrame väljade nimed, mis kuvatakse ainult siis, kui operaator $or annab sobiva dokumendi.

db.Patsiendid.leida ( {
$või : [
{ Süüdistused: { $ lt : 6000 } } ,
{ Süüdistused: { $gt : 7000 } }
]
} , {
Eesnimi: üks ,
Süüdistused: üks
} )

Väljundis kuvatakse sobitatud dokumentide jaoks ainult väljad 'Eesnimi' ja 'Tasud'.

Näide 6: Argumendita operaator MongoDB $OR

Kõik operaatoriga $or rakendatud päringud edastatakse argumendi väärtusega. Nüüd määratleme operaatori $or päringu, mis ei sisesta argumente. Kui käivitatakse tühi argumendi $või operaatori päring, hindab see valesid tulemusi. Anname päringu, kus toiming $or edastatakse tühja avaldisega.

db.Patients.agregate (
[
{ $match : { _id: { $in : [ Objekti ID ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $projekt : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
Tulemus: { $või : [ ] } }
}
]
)

Kui operaator $or esitatakse tühja argumendiga, on tulemustes vale väärtus.

Näide 7: MongoDB $OR operaator vastab massiivi väärtustele

Erinevate väärtustega dokumentidesse sisestame massiivi 'Test'. Kasutame seda massiivi operaatori $or jaoks tulemuste uurimiseks. Järgmise päringu operaator $or kutsutakse välja meetodi find() sees. Operaator $or võtab avaldisena massiivi 'Test'. Massiiv 'Test' kasutab operaatorit $in, et tuvastada dokumendid, mille välja väärtused vastavad massiivi 'MRI' ja 'CT' väärtustele.

db.Patsiendid.leida ( { $või : [ { Test: { $in : [ 'MRI' , 'CT' ] } } ] } ) . ilus ( )

Üks dokument kuvatakse shellis, kui käivitatakse operaator $or query, mis näitab, et allalaaditud dokument sisaldab määratud massiivi väärtusi.

Järeldus

See MongoDB artikkel illustreerib MongoDB $or operaatori päringu kasutamist loogiliste VÕI-operatsioonide täitmiseks massiivi, mis sisaldab kahte või enamat avaldist, samuti dokumentide toomiseks, mis vastavad vähemalt ühele avaldistele. Erinevate toimingute tegemiseks küsitakse MongoDB kestas operaatorit $or. Operaatorit $or kasutatakse tingimuslikes operaatorites avaldisena ja see tagastab dokumendid tingimuslausete alusel.