MongoDB OF-operator

Mongodb Of Operator



We hebben verschillende logische query-operators die beschikbaar zijn in MongoDB, en een daarvan is de $or-operator. De MongoDB $or operator wordt gebruikt om een ​​logische OR-bewerking te implementeren op een array die twee of meer expressies bevat en alleen die documenten op te halen die overeenkomen met een van de gespecificeerde expressies in de array. De operator $or wordt gebruikt om meerdere verklaringen in één query te vinden met slechts één overeenkomend documentcriterium. De operator $or vergemakkelijkt de combinatie van verschillende sleutels en waarden.

Hoe de OR-operator in MongoDB te gebruiken

De OR-operator in MongoDB wordt weergegeven in het formaat '$or'. De '$or' wordt gebruikt om de meerdere uitdrukkingen tussen vierkante haken te plaatsen waarop de logische OF-bewerking wordt uitgevoerd. We gebruiken de operator $or op de MongoDB-verzameling. We maken de MongoDB-collectie met de titel 'Patiënten'. De verzameling 'Patiënten' wordt ingevoegd met de meerdere documenten waarop we de $or-operator uitvoeren. De volgende documenten worden in MongoDB ingevoegd door de methode insertMany() aan te roepen:

db.Patiënten.insertMany ( [
{
'Voornaam' : 'Jennifer' ,
'Achternaam' : 'Jozua' ,
'Leeftijd' : 44 ,
'Telefoonnummer' : 43400517 ,
'Afspraak' : 'Tandarts' ,
'Kosten' : 2000 ,
'Test' : [ 'Röntgenfoto' , 'Bloed' , 'pulpaal' ]
} ,
{
'Voornaam' : 'Thomas' ,
'Achternaam' : 'Steven' ,
'Leeftijd' : 74 ,
'Telefoonnummer' : 39034694 ,
'Afspraakdatum' : 'Chirurg' ,
'Kosten' : 6000 ,
'Test' : [ 'Keuze' , 'PPT' ]
} ,
{
'Voornaam' : 'Karel' ,
'Achternaam' : 'Daniël' ,
'Leeftijd' : 35 ,
'Telefoonnummer' : 65712165 ,
'Afspraak' : 'Cardiologie arts' ,
'Kosten' : 2000 ,
'Test' : [ 'CT' , 'MRI' ]
} ,
{
'Voornaam' : 'Michelle' ,
'Achternaam' : 'Paulus' ,
'Leeftijd' : 51 ,
'Telefoonnummer' : 54399288 ,
'Afspraak' : 'dermatoloog' ,
'Kosten' : 8000 ,
'Test' : [ 'Huidbiopten' , 'Hout licht' , 'Huid schrapen' ]
} ,

{
'Voornaam' : 'Andrew' ,
'Achternaam' : 'Jerry' ,
'Leeftijd' : 69 ,
'Telefoonnummer' : 6108100 ,
'Afspraak' : 'Cardiologie arts' ,
'Kosten' : 7000 ,
'Test' : [ 'ECG' , 'Bloed glucose' , 'Echografie' ]
}
] )

De uitvoer van de eerder ingevoegde documenten erkent 'true' en levert de 'insertedIds'-waarden voor elk document.









Voorbeeld 1: MongoDB $OR-operator om de documenten te matchen

De basisquery van de MongoDB $or-operator is hier geïmplementeerd, wat de werking van deze operator in MongoDB demonstreert. Hier definiëren we een query met de methode find(). De methode find() wordt verder gespecificeerd met de operator $or. De operator $or gebruikt twee velden, 'Afspraak' en 'Kosten', waaraan de waarden zijn toegewezen. De operator $or komt overeen met de veldwaarde en haalt alleen die documenten op waarvan de waarden overeenkomen met de veldwaarden. De querystructuur van de operator $or wordt als volgt weergegeven:



db.Patiënten.vinden ( { $ of : [ { Afspraak: 'dermatoloog' } ,
{ Kosten: 7000 } ] } ) .zeer ( )

We halen de documenten op waarvan de 'Afspraak' bij 'Dermatoloog' is en waarvan de 'Kosten' '7000' zijn. De operator $or vindt echte resultaten van beide veldwaarden en retourneert de overeenkomende documenten in de uitvoer.





Voorbeeld 2: MongoDB $OR-operator om de niet-bestaande documenten te matchen

In de vorige query van de operator $or hebben we de overeenkomende documenten opgehaald. Nu halen we het niet-bestaande document op uit de verzameling 'Patiënt'. De volgende query van de operator $or neemt het document waarvan de 'Voornaam' 'Charles' is en de 'Afspraak' is bij de 'Arts'. De operator $or komt overeen met deze veldwaarden binnen de verzameling 'Patiënten' en genereert de resultaten na het matchen.



db.Patiënten.vinden ( { $ of : [ { 'Voornaam' : 'Karel' } , { 'Afspraak' : 'Arts' } ] } ) .zeer ( )

De operator $or heeft één waar resultaat en de andere heeft een onwaar resultaat. Aangezien we de 'Afspraak' specificeren met de waarde 'Arts', die niet overeenkomt met een van de documenten in de 'Patiënt'-verzameling. Daarom retourneert de operator $or alleen het document van het overeenkomende veld dat 'Patiënt' is als uitvoer.

Voorbeeld 3: MongoDB $OR-operator met meerdere argumenten

We hebben twee argumenten opgegeven in de vorige query's van de operator $or. Hier geven we meer dan twee argumenten door als $or-operatoruitdrukking. We halen het document op dat overeenkomt met een van de veldwaarden 'Leeftijd' die eraan zijn gegeven. De operatorvereiste $or is hetzelfde voor de meerdere argumenten dat een van de uitdrukkingen waar moet zijn. De query voor meerdere argumenten in de operator $or wordt als volgt gegeven:

db.Patiënten.vinden ( { 'Afspraak' : 'Cardiologie arts' , $ of : [ { 'Leeftijd' : twintig } , { 'Leeftijd' : 35 } , { 'Leeftijd' : 69 } ] } )

Daar hebben we twee overeenkomende resultaten die worden verkregen van de operator $or. De 'Leeftijd'-waarden die '35' en '69' zijn, worden vergeleken met de 'Patiënten'-documenten die worden verkregen door de $or-operator en worden weergegeven op de shell.

Voorbeeld 4: MongoDB $OR-operator met aggregatie

De aggregatiemethode in MongoDB combineert de records tot een verzameling. Daarom kunnen ze voor verschillende operaties worden gebruikt. We voeren de $or-operator uit in de aggregatiemethode die een of meer uitdrukkingen evalueert en waar retourneert als een van hen als waar evalueert. Anders wordt de verklaring als onjuist beschouwd.

Laten we de query van de $or aggregation-operator hebben waarbij we eerst de aggregatie()-methode aanroepen die vervolgens de $match en het $project implementeert dat is gespecificeerd met de _id-waarde die moet worden vergeleken met het document. Vervolgens stellen we het veld 'Leeftijd' in op de waarde '1', omdat we alleen willen dat dit veld wordt gegenereerd uit alle documenten. Daarna definiëren we het kenmerk 'Resultaten' met de bewerking $or. De operator $or neemt de voorwaardelijke verklaring van $gt. De uitdrukking '$gt:['$Age', 69]' geeft de leeftijd waarvan de waarde groter is dan '69'. De resultaten voor deze uitdrukking worden doorgegeven aan de operator $or en de operator $or retourneert het document dat aan de opgegeven voorwaarde voldoet.

db.Patiënten.aggregaat (
[
{ $overeenkomst : { _id: ObjectId ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $project : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
Leeftijd: een ,
Resultaat: { $ of : [
{ $ gt : [ ' $Leeftijd ' , 69 ] }
] }
}
}
]
)

De 'Leeftijd' die groter is dan '69' is '74' die wordt weergegeven in de uitvoershell samen met de 'Resultaten' die de 'echte' waarde heeft.

Voorbeeld 5: MongoDB $OR-operator roept de voorwaarden op

De operator $or van MongoDB is een logische operator. We kunnen deze logische operator gebruiken met de voorwaardelijke operator. De operator $or retourneert de resultaten wanneer aan de voorwaarden is voldaan. Bovendien kunnen we meer dan één voorwaarde aanroepen in de $or-operator waarvan er één waar moet zijn. Hier hebben we een query van $or operator die is opgegeven met twee verschillende voorwaarden. De eerste voorwaarde is '{Charges:{$lt: 6000}}' die het document retourneert dat kleiner is dan de 'Charges'-waarde van '6000'. De voorwaarde {Charges:“$gt: 7000”} haalt het document op dat groter is dan de waarde voor “Charges” van “7000”.

De operator $or geeft het overeenkomende document wanneer aan deze voorwaarden is voldaan. Vervolgens specificeren we de namen van de velden die alleen worden weergegeven als de $or-operator het overeenkomende document geeft.

db.Patiënten.vinden ( {
$ of : [
{ Kosten: { $lt : 6000 } } ,
{ Kosten: { $ gt : 7000 } }
]
} , {
Voornaam: een ,
Kosten: een
} )

De uitvoer toont alleen de velden 'Voornaam' en 'Kosten' voor de overeenkomende documenten.

Voorbeeld 6: MongoDB $OR-operator zonder argument

Alle geïmplementeerde query's met de operator $or worden doorgegeven met de argumentwaarde. Nu definiëren we de query van de operator $or die geen argument invoert. Wanneer het lege argument $ of operatorquery wordt uitgevoerd, evalueert het de foutieve resultaten. We geven een query waarbij de $or-bewerking wordt doorgegeven met de lege uitdrukking.

db.Patiënten.aggregaat (
[
{ $overeenkomst : { _ID kaart: { $in : [ Object-ID ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $project : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
Resultaat: { $ of : [ ] } }
}
]
)

Als gevolg van het feit dat de operator $or een leeg argument krijgt, geven de uitkomsten een valse waarde aan.

Voorbeeld 7: MongoDB $OR-operator komt overeen met de matrixwaarden

We voegen de 'Test' -array in de documenten in die verschillende waarden hebben. We gebruiken die array voor de operator $or om de resultaten te onderzoeken. De operator $or in de volgende query wordt aangeroepen binnen de methode find(). De operator $or neemt de array 'Test' als een uitdrukking. De 'Test'-array gebruikt de $in-operator om de documenten te identificeren waarvan de veldwaarden overeenkomen met de 'MRI'- en 'CT'-waarden in de array.

db.Patiënten.vinden ( { $ of : [ { Test: { $in : [ 'MRI' , 'CT' ] } } ] } ) .zeer ( )

Eén document wordt weergegeven op de shell wanneer de $or query-operator wordt uitgevoerd, wat aangeeft dat het opgehaalde document de gespecificeerde matrixwaarden bevat.

Gevolgtrekking

Dit MongoDB-artikel illustreert het gebruik van een MongoDB $or-operatorquery om de logische OR-bewerkingen uit te voeren op een array die twee of meer expressies bevat en om de documenten op te halen die overeenkomen met ten minste één van de expressies. De operator $or wordt gevraagd in de MongoDB-shell om verschillende bewerkingen uit te voeren. De operator $or wordt gebruikt in voorwaardelijke operatoren als een uitdrukking en retourneert de documenten op basis van de voorwaardelijke instructies.