MongoDB TAI operaattori

Mongodb Tai Operaattori



Meillä on erilaisia ​​loogisia kyselyoperaattoreita, jotka ovat saatavilla MongoDB:ssä, ja yksi niistä on $or-operaattori. MongoDB $or -operaattoria käytetään toteuttamaan looginen TAI-toiminto taulukossa, joka sisältää kaksi tai useampia lausekkeita, ja noutaa vain ne asiakirjat, jotka vastaavat mitä tahansa taulukossa määritettyä lauseketta. $or-operaattoria käytetään useiden lauseiden etsimiseen yhdestä kyselystä vain yhdellä vastaavalla asiakirjakriteerillä. $or-operaattori helpottaa useiden avainten ja arvojen yhdistämistä.

Kuinka käyttää OR-operaattoria MongoDB:ssä

OR-operaattori MongoDB:ssä esitetään muodossa '$or'. '$tai' -merkkiä käytetään useiden lausekkeiden sulkemiseen hakasulkeisiin, joille looginen TAI -toiminto suoritetaan. Käytämme $or-operaattoria MongoDB-kokoelmassa. Luomme MongoDB-kokoelman, jonka nimi on 'Patients'. 'Potilaat'-kokoelma lisätään useiden asiakirjojen kanssa, joille suoritamme $or-operaattorin. Seuraavat asiakirjat lisätään MongoDB:hen kutsumalla insertMany()-menetelmää:

db.Patients.insertMany ( [
{
'Etunimi' : 'Jennifer' ,
'Sukunimi' : 'Joshua' ,
'Ikä' : 44 ,
'Puhelinnumero' : 43400517 ,
'Nimittäminen' : 'Hammaslääkäri' ,
'Maksut' : 2000 ,
'Testata' : [ 'röntgen' , 'Veri' , 'Pulpal' ]
} ,
{
'Etunimi' : 'Tomas' ,
'Sukunimi' : 'Steven' ,
'Ikä' : 74 ,
'Puhelinnumero' : 39034694 ,
'Tapaamispäivä' : 'Kirurgi' ,
'Maksut' : 6000 ,
'Testata' : [ 'valinnainen' , 'PPT' ]
} ,
{
'Etunimi' : 'Charles' ,
'Sukunimi' : 'Daniel' ,
'Ikä' : 35 ,
'Puhelinnumero' : 65712165 ,
'Nimittäminen' : 'kardiologian lääkäri' ,
'Maksut' : 2000 ,
'Testata' : [ 'CT' , 'MRI' ]
} ,
{
'Etunimi' : 'Michelle' ,
'Sukunimi' : 'Paavali' ,
'Ikä' : 51 ,
'Puhelinnumero' : 54399288 ,
'Nimittäminen' : 'Ihotautilääkäri' ,
'Maksut' : 8000 ,
'Testata' : [ 'Ihobiopsiat' , 'Puu valo' , 'Ihon raapiminen' ]
} ,

{
'Etunimi' : 'Andrew' ,
'Sukunimi' : 'Jerry' ,
'Ikä' : 69 ,
'Puhelinnumero' : 6108100 ,
'Nimittäminen' : 'kardiologian lääkäri' ,
'Maksut' : 7000 ,
'Testata' : [ 'EKG' , 'Verensokeri' , 'Ultraääni' ]
}
] )

Aiemmin lisättyjen asiakirjojen tulos kuittaa 'true' ja antaa 'insertedIds'-arvot jokaiselle asiakirjalle.









Esimerkki 1: MongoDB $OR -operaattori vastaamaan asiakirjoja

Tässä on toteutettu MongoDB $or -operaattorin peruskysely, joka osoittaa tämän operaattorin toiminnan MongoDB:ssä. Tässä määritämme kyselyn find()-menetelmällä. Find()-menetelmää määritetään tarkemmin operaattorilla $or. $or-operaattorilla on kaksi kenttää, 'Ajanvaraus' ja 'Maksut', jotka on määritetty arvoilla. $or-operaattori vastaa kentän arvoa ja hakee vain ne asiakirjat, joiden arvot vastaavat kentän arvoja. $or-operaattorin kyselyrakenne esitetään seuraavassa:



db.Patients.find ( { $tai : [ { Nimittäminen: 'Ihotautilääkäri' } ,
{ Maksut: 7000 } ] } ) .nätti ( )

Haemme asiakirjat, joiden 'Ajanvaraus' on 'Ihotautilääkärille' ja joiden 'Maksut' ovat '7000'. Operaattori $or löytää todelliset tulokset molemmista kenttäarvoista ja palauttaa vastaavat asiakirjat tulosteeseen.





Esimerkki 2: MongoDB $OR -operaattori vastaamaan olemattomia asiakirjoja

Edellisessä $or-operaattorin kyselyssä haimme vastaavat asiakirjat. Nyt haemme olemattoman asiakirjan 'Potilas'-kokoelmasta. Seuraava $or operaattorin kysely ottaa asiakirjan, jonka 'FirstName' on 'Charles' ja 'Tappaus' on 'Physician' kanssa. $or-operaattori vastaa näitä kenttien arvoja 'Potilaat'-kokoelmassa ja luo tulokset täsmäämisen jälkeen.



db.Patients.find ( { $tai : [ { 'Etunimi' : 'Charles' } , { 'Nimittäminen' : 'Lääkäri' } ] } ) .nätti ( )

$or-operaattorilla on yksi tosi tulos ja toisella väärä tulos. Koska määritämme 'Ajanvaraus'-arvon 'Lääkäri'-arvolla, joka ei vastaa mitään 'Potilas'-kokoelman asiakirjoja. Tästä syystä $or-operaattori palauttaa tulosteena vain vastaavan kentän asiakirjan, joka on 'Potilas'.

Esimerkki 3: MongoDB $OR -operaattori, jolla on useita argumentteja

Esitimme kaksi argumenttia edellisissä $or-operaattorikyselyissä. Tässä välitämme enemmän kuin kaksi argumenttia $ tai -operaattorilausekkeena. Haemme asiakirjan, joka vastaa mitä tahansa sille annettua 'Ikä'-kentän arvoa. $or-operaattorin vaatimus on sama useille argumenteille, että yhden lausekkeen tulee olla tosi. $or-operaattorin useiden argumenttien kysely annetaan seuraavasti:

db.Patients.find ( { 'Nimittäminen' : 'kardiologian lääkäri' , $tai : [ { 'Ikä' : kaksikymmentä } , { 'Ikä' : 35 } , { 'Ikä' : 69 } ] } )

Siellä meillä on kaksi vastaavaa tulosta, jotka saadaan $or-operaattorilta. 'Ikä'-arvoja, jotka ovat '35' ja '69', verrataan 'Potilaat'-asiakirjoihin, jotka $or-operaattori saa ja jotka näkyvät kuoressa.

Esimerkki 4: MongoDB $OR -operaattori aggregaatiolla

MongoDB:n aggregointimenetelmä yhdistää tietueet kokoelmaksi. Siksi niitä voidaan käyttää erilaisiin toimintoihin. Suoritamme $or-operaattorin aggregointimenetelmässä, joka arvioi yhden tai useamman lausekkeen ja palauttaa tosi, jos jokin niistä arvioi tosi. Muussa tapauksessa väite katsotaan vääräksi.

Tehdään $or aggregation -operaattorikysely, jossa kutsumme ensin aggregate()-metodin, joka sitten ottaa käyttöön $match- ja $projektin, joka on määritetty _id-arvolla, joka sovitetaan asiakirjasta. Sitten asetamme 'Ikä'-kentän arvoksi '1', koska haluamme, että tämä kenttä luodaan vain kaikista asiakirjoista. Tämän jälkeen määritämme 'Results'-attribuutin, jolla on $or-toiminto. Operaattori $or ottaa ehdollisen lauseen $gt. Lause '$gt:['$Ikä', 69] antaa iän, jonka arvo on suurempi kuin '69'. Tämän lausekkeen tulokset välitetään $or-operaattorille ja $or-operaattori palauttaa asiakirjan, joka täyttää määritetyn ehdon.

db.Patients.aggregate (
[
{ $match : { _id: ObjectId ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $projekti : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
Ikä: yksi ,
Tulos: { $tai : [
{ $gt : [ ' $Ikä ' , 69 ] }
] }
}
}
]
)

'Ikä', joka on suurempi kuin '69', on '74', joka näkyy tulostekuoressa yhdessä 'Results' -arvon kanssa, jolla on 'true'-arvo.

Esimerkki 5: MongoDB $OR -operaattori kutsuu ehdot

MongoDB:n $or-operaattori on looginen operaattori. Voimme käyttää tätä loogista operaattoria ehdollisen operaattorin kanssa. $or-operaattori palauttaa tulokset, kun ehdot täyttyvät. Lisäksi voimme kutsua useampaa kuin yhtä ehtoa operaattorissa $or, joista yhden on oltava tosi. Tässä meillä on $or-operaattorin kysely, joka on määritetty kahdella eri ehdolla. Ensimmäinen ehto on '{Charges:{$lt: 6000}}', joka palauttaa asiakirjan, joka on pienempi kuin 'Charges'-arvo '6000'. Ehto {Charges:'$gt: 7000'} saa asiakirjan, joka on suurempi kuin 'Charges'-arvo '7000'.

$or-operaattori antaa vastaavan dokumentin, kun nämä ehdot täyttyvät. Sitten määritämme kenttien nimet, jotka näkyvät vain, kun $or-operaattori antaa vastaavan dokumentin.

db.Patients.find ( {
$tai : [
{ Maksut: { $lt : 6000 } } ,
{ Maksut: { $gt : 7000 } }
]
} , {
Etunimi: yksi ,
Maksut: yksi
} )

Tulos näyttää vain 'FirstName'- ja 'Charges'-kentät vastaaville asiakirjoille.

Esimerkki 6: MongoDB $OR -operaattori ilman argumenttia

Kaikki toteutetut kyselyt, joissa on $or-operaattori, välitetään argumentin arvolla. Nyt määritämme $or-operaattorikyselyn, joka ei syötä argumenttia. Kun tyhjä argumentti $tai operaattorikysely suoritetaan, se arvioi väärät tulokset. Annamme kyselyn, jossa $or-operaatio välitetään tyhjällä lausekkeella.

db.Patients.aggregate (
[
{ $match : { _id: { $in : [ ObjectId ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $projekti : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
Tulos: { $tai : [ ] } }
}
]
)

Kun operaattori $or syötetään tyhjällä argumentilla, tulokset antavat väärän arvon.

Esimerkki 7: MongoDB $OR -operaattori vastaa taulukon arvoja

Lisäämme 'Testi'-taulukon asiakirjoihin, joilla on eri arvot. Käytämme tätä taulukkoa $or-operaattorille tulosten tutkimiseen. Seuraavan kyselyn $or-operaattoria kutsutaan find()-metodissa. Operaattori $or ottaa 'Testi'-taulukon lausekkeena. 'Test'-taulukko käyttää $in-operaattoria tunnistamaan asiakirjat, joiden kenttäarvot vastaavat taulukon 'MRI'- ja 'CT'-arvoja.

db.Patients.find ( { $tai : [ { Testata: { $in : [ 'MRI' , 'CT' ] } } ] } ) .nätti ( )

Yksi dokumentti näytetään kuoressa, kun $or query -operaattori suoritetaan, mikä osoittaa, että haettu asiakirja sisältää määritetyt taulukkoarvot.

Johtopäätös

Tämä MongoDB-artikkeli havainnollistaa MongoDB $or -operaattorikyselyn käyttöä loogisten TAI-toimintojen suorittamiseen taulukossa, joka sisältää kaksi tai useampia lausekkeita, sekä asiakirjat, jotka vastaavat vähintään yhtä lauseketta. $or-operaattoria kysytään MongoDB-kuoressa eri toimintojen suorittamiseksi. $or-operaattoria käytetään ehdollisissa operaattoreissa lausekkeena ja se palauttaa dokumentit ehdollisten lausekkeiden perusteella.