MongoDB ELLER Operatør

Mongodb Eller Operator



Vi har forskellige logiske forespørgselsoperatorer, som er tilgængelige i MongoDB, og en af ​​dem er $or-operatoren. MongoDB $or-operatoren bruges til at implementere en logisk OR-operation på et array, der indeholder to eller flere udtryk, og kun hente de dokumenter, der matcher et af de angivne udtryk i arrayet. $or-operatoren bruges til at finde flere udsagn i en enkelt forespørgsel med kun ét matchende dokumentkriterium. $or-operatoren letter kombinationen af ​​flere taster og værdier.

Sådan bruges OR-operatøren i MongoDB

OR-operatøren i MongoDB er repræsenteret i '$or'-format. '$or' bruges til at omslutte de multiple udtryk i de firkantede parenteser, hvorpå den logiske ELLER-operation udføres. Vi bruger $or-operatoren på MongoDB-samlingen. Vi opretter MongoDB-kollektionen, som har titlen 'Patienter'. 'Patienter'-samlingen indsættes med de flere dokumenter, som vi udfører $or-operatøren på. Følgende dokumenter indsættes i MongoDB ved at kalde insertMany() metoden:

db.Patients.insertMany ( [
{
'Fornavn' : 'Jennifer' ,
'Efternavn' : 'Joshua' ,
'Alder' : 44 ,
'Telefonnummer' : 43400517 ,
'Aftale' : 'Tandlæge' ,
'Afgifter' : 2000 ,
'Prøve' : [ 'røntgen' , 'Blod' , 'Pulpal' ]
} ,
{
'Fornavn' : 'Thomas' ,
'Efternavn' : 'Steven' ,
'Alder' : 74 ,
'Telefonnummer' : 39034694 ,
'Aftaledato' : 'Kirurg' ,
'Afgifter' : 6000 ,
'Prøve' : [ 'valgfag' , 'PPT' ]
} ,
{
'Fornavn' : 'Charles' ,
'Efternavn' : 'Daniel' ,
'Alder' : 35 ,
'Telefonnummer' : 65712165 ,
'Aftale' : 'Kardiologisk læge' ,
'Afgifter' : 2000 ,
'Prøve' : [ 'CT' , 'MRI' ]
} ,
{
'Fornavn' : 'Michelle' ,
'Efternavn' : 'Paul' ,
'Alder' : 51 ,
'Telefonnummer' : 54399288 ,
'Aftale' : 'Hudlæge' ,
'Afgifter' : 8000 ,
'Prøve' : [ 'Hudbiopsier' , 'Trælys' , 'Hudskrabning' ]
} ,

{
'Fornavn' : 'Andrew' ,
'Efternavn' : 'Jerry' ,
'Alder' : 69 ,
'Telefonnummer' : 6108100 ,
'Aftale' : 'Kardiologisk læge' ,
'Afgifter' : 7000 ,
'Prøve' : [ 'EKG' , 'Blodsukker' , 'Ultralyd' ]
}
] )

Outputtet af de tidligere indsatte dokumenter anerkender 'sand' og giver 'insertedIds'-værdierne for hvert dokument.









Eksempel 1: MongoDB $OR Operator til at matche dokumenterne

Den grundlæggende forespørgsel fra MongoDB $or-operatøren er implementeret her, hvilket demonstrerer, hvordan denne operatør fungerer i MongoDB. Her definerer vi en forespørgsel med metoden find(). Find()-metoden er yderligere specificeret med operatoren $or. $or-operatøren tager to felter, 'Aftale' og 'Afgifter', som er tildelt værdierne. $or-operatoren matcher feltværdien og henter kun de dokumenter, hvis værdier matches med feltværdierne. Forespørgselsstrukturen for $or-operatoren er angivet i følgende:



db.Patients.find ( { $eller : [ { Aftale: 'Hudlæge' } ,
{ Gebyrer: 7000 } ] } ) .smuk ( )

Vi henter de dokumenter, hvis 'Aftale' er hos 'Hudlæge', og hvis 'gebyrer' er '7000'. $or-operatoren finder sande resultater fra begge feltværdier og returnerer de matchede dokumenter i outputtet.





Eksempel 2: MongoDB $OR Operator til at matche de ikke-eksisterende dokumenter

I den tidligere forespørgsel fra $or-operatøren hentede vi de matchede dokumenter. Nu henter vi det ikke-eksisterende dokument fra 'Patient'-samlingen. Følgende $or-operatørforespørgsel tager dokumentet, hvis 'Fornavn' er 'Charles', og 'Aftalen' er med 'Lægen'. $or-operatøren matcher disse feltværdier i 'Patient-samlingen' og genererer resultaterne efter matchning.



db.Patients.find ( { $eller : [ { 'Fornavn' : 'Charles' } , { 'Aftale' : 'Læge' } ] } ) .smuk ( )

$or-operatoren har et sandt resultat, og det andet har et falsk resultat. Som vi angiver 'Aftale' med 'Læge'-værdien, som ikke matcher nogen af ​​dokumenterne i 'Patient'-samlingen. Det er derfor, $or-operatøren kun returnerer dokumentet for det matchede felt, som er 'Patient' som output.

Eksempel 3: MongoDB $OR Operator med flere argumenter

Vi har givet to argumenter i de tidligere $or-operatorforespørgsler. Her sender vi mere end to argumenter som $or-operatorudtrykket. Vi henter det dokument, der matcher nogen af ​​'Alder' feltværdierne, der er givet til det. $or-operatorkravet er det samme for de flere argumenter om, at et af udtrykkene skal være sandt. Forespørgslen efter flere argumenter i $or-operatoren er givet som følger:

db.Patients.find ( { 'Aftale' : 'Kardiologisk læge' , $eller : [ { 'Alder' : tyve } , { 'Alder' : 35 } , { 'Alder' : 69 } ] } )

Der har vi to matchede resultater, som er opnået fra $or-operatøren. 'Alder'-værdierne, som er '35' og '69', sammenlignes med 'Patient-dokumenterne', som er opnået af $or-operatøren og vises på skallen.

Eksempel 4: MongoDB $OR Operator med aggregation

Den aggregerede metode i MongoDB kombinerer posterne til en samling. Derfor kan de bruges til forskellige operationer. Vi udfører operatoren $or i aggregeringsmetoden, som evaluerer et eller flere udtryk og returnerer sand, hvis nogen af ​​dem evalueres til sand. I modsat fald betragtes udsagnet som falsk.

Lad os have $or aggregeringsoperator-forespørgslen, hvor vi først påkalder aggregate()-metoden, som derefter implementerer $match og $project, som er specificeret med _id-værdien, der skal matches fra dokumentet. Derefter indstiller vi 'Alder'-feltet med værdien '1', fordi vi kun ønsker, at dette felt skal genereres fra alle dokumenter. Derefter definerer vi attributten 'Resultater', som har $or-operationen. $or-operatoren tager den betingede sætning af $gt. Udtrykket '$gt:['$Age', 69]' giver den alder, hvis værdi er større end '69'. Resultaterne for dette udtryk sendes til operatoren $or, og operatoren $or returnerer det dokument, der opfylder den angivne betingelse.

db.Patients.aggregat (
[
{ $match : { _id: ObjectId ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $projekt : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
Alder: en ,
Resultat: { $eller : [
{ $gt : [ ' $Alder ' , 69 ] }
] }
}
}
]
)

'Alder', som er større end '69', er '74', som vises i output-skallen sammen med 'Resultater', som har den 'sande' værdi.

Eksempel 5: MongoDB $OR Operator påberåber sig betingelserne

$or-operatøren af ​​MongoDB er en logisk operator. Vi kan bruge denne logiske operator med den betingede operator. $or-operatøren returnerer resultaterne, når betingelserne er opfyldt. Derudover kan vi påberåbe mere end én betingelse i $or-operatoren, hvorfra en skal være sand. Her har vi en forespørgsel på $or operator, som er specificeret med to forskellige betingelser. Den første betingelse er '{Charges:{$lt: 6000}}', som returnerer dokumentet, der er mindre end 'Charges'-værdien på '6000'. Betingelsen {Charges:“$gt: 7000”} får dokumentet, som er større end “Charges”-værdien på “7000”.

$or-operatøren giver det matchede dokument, når disse betingelser er opfyldt. Derefter angiver vi navnene på felterne, som kun vises, når $or-operatøren giver det matchede dokument.

db.Patients.find ( {
$eller : [
{ Gebyrer: { $lt : 6000 } } ,
{ Gebyrer: { $gt : 7000 } }
]
} , {
Fornavn: en ,
Gebyrer: en
} )

Outputtet viser kun felterne 'FirstName' og 'Charges' for de matchede dokumenter.

Eksempel 6: MongoDB $OR Operator uden argumenter

Alle de implementerede forespørgsler med $or-operatoren sendes med argumentværdien. Nu definerer vi $or-operatorforespørgslen, som ikke indtaster noget argument. Når det tomme argument $or operatorforespørgsel udføres, evaluerer det de falske resultater. Vi giver en forespørgsel, hvor $or-operationen sendes med det tomme udtryk.

db.Patients.aggregat (
[
{ $match : { _id: { $in : [ ObjectId ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $projekt : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
Resultat: { $eller : [ ] } }
}
]
)

Som et resultat af at $or-operatoren forsynes med et tomt argument, angiver resultaterne en falsk værdi.

Eksempel 7: MongoDB $OR Operator matcher matrixværdierne

Vi indsætter 'Test'-arrayet i de dokumenter, der har forskellige værdier. Vi bruger denne matrix til $or-operatøren til at undersøge resultaterne. $or-operatoren i den følgende forespørgsel kaldes inde i find()-metoden. $or-operatoren tager 'Test'-arrayet som et udtryk. 'Test'-arrayet bruger $in-operatoren til at identificere de dokumenter, hvis feltværdier matcher 'MRI'- og 'CT'-værdierne i arrayet.

db.Patients.find ( { $eller : [ { Prøve: { $in : [ 'MRI' , 'CT' ] } } ] } ) .smuk ( )

Et dokument vises på shellen, når $or query-operatoren udføres, hvilket viser, at det hentede dokument indeholder de angivne matrixværdier.

Konklusion

Denne MongoDB-artikel illustrerer brugen af ​​en MongoDB $or-operatorforespørgsel til at udføre de logiske OR-operationer på et array, der inkluderer to eller flere udtryk, samt til at hente de dokumenter, der matcher mindst et af udtrykkene. $or-operatøren forespørges i MongoDB-skallen for at udføre forskellige operationer. Operatoren $or bruges i betingede operatorer som et udtryk og returnerer dokumenterne baseret på de betingede udsagn.