Operatore MongoDB OR

Operatore Mongodb Or



Abbiamo diversi operatori di query logiche disponibili in MongoDB e uno di questi è l'operatore $or. L'operatore MongoDB $or viene utilizzato per implementare un'operazione OR logica su un array che contiene due o più espressioni e recuperare solo i documenti che corrispondono a una qualsiasi delle espressioni specificate nell'array. L'operatore $or viene utilizzato per trovare più istruzioni in una singola query con un solo criterio di documento corrispondente. L'operatore $or facilita la combinazione di più chiavi e valori.

Come utilizzare l'operatore OR in MongoDB

L'operatore OR in MongoDB è rappresentato nel formato '$or'. Il '$or' viene utilizzato per racchiudere le espressioni multiple tra parentesi quadre su cui viene eseguita l'operazione logica OR. Usiamo l'operatore $or sulla collezione MongoDB. Creiamo la collezione MongoDB che si intitola “Patients”. La raccolta “Patients” viene inserita con i documenti multipli sui quali eseguiamo l'operatore $or. I seguenti documenti vengono inseriti in MongoDB invocando il metodo insertMany():

db.Patients.insertMany ( [
{
'Nome di battesimo' : 'Jennifer' ,
'Cognome' : 'Giosuè' ,
'Età' : 44 ,
'Numero di telefono' : 43400517 ,
'Appuntamento' : 'Dentista' ,
'Oneri' : 2000 ,
'Test' : [ 'Raggi X' , 'Sangue' , 'polpale' ]
} ,
{
'Nome di battesimo' : 'Tommaso' ,
'Cognome' : 'Stefano' ,
'Età' : 74 ,
'Numero di telefono' : 39034694 ,
'Data dell'appuntamento' : 'Chirurgo' ,
'Oneri' : 6000 ,
'Test' : [ 'Elettivo' , 'PPT' ]
} ,
{
'Nome di battesimo' : 'Carlo' ,
'Cognome' : 'Daniele' ,
'Età' : 35 ,
'Numero di telefono' : 65712165 ,
'Appuntamento' : 'Medico cardiologo' ,
'Oneri' : 2000 ,
'Test' : [ 'CT' , 'MRI' ]
} ,
{
'Nome di battesimo' : 'Michele' ,
'Cognome' : 'Paolo' ,
'Età' : 51 ,
'Numero di telefono' : 54399288 ,
'Appuntamento' : 'Dermatologo' ,
'Oneri' : 8000 ,
'Test' : [ 'biopsie cutanee' , 'Luce di legno' , 'Raschiatura della pelle' ]
} ,

{
'Nome di battesimo' : 'Andrea' ,
'Cognome' : 'Gerry' ,
'Età' : 69 ,
'Numero di telefono' : 6108100 ,
'Appuntamento' : 'Medico cardiologo' ,
'Oneri' : 7000 ,
'Test' : [ 'ECG' , 'Glucosio nel sangue' , 'Ultrasuoni' ]
}
] )

L'output dei documenti inseriti in precedenza riconosce 'true' e fornisce i valori 'insertedIds' per ogni documento.









Esempio 1: Operatore MongoDB $OR per abbinare i documenti

La query di base dell'operatore MongoDB $or è implementata qui che dimostra il funzionamento di questo operatore in MongoDB. Qui definiamo una query con il metodo find(). Il metodo find() è ulteriormente specificato con l'operatore $or. L'operatore $or accetta due campi, 'Appuntamento' e 'Addebiti', a cui vengono assegnati i valori. L'operatore $or corrisponde al valore del campo e recupera solo i documenti i cui valori corrispondono ai valori del campo. La struttura della query dell'operatore $or è fornita di seguito:



db.Patients.find ( { $o : [ { Appuntamento: 'Dermatologo' } ,
{ Oneri: 7000 } ] } ) .bello ( )

Recuperiamo i documenti il ​​cui 'Appuntamento' è con 'Dermatologo' e i cui 'Addebiti' sono '7000'. L'operatore $or trova risultati veri da entrambi i valori di campo e restituisce i documenti corrispondenti nell'output.





Esempio 2: Operatore MongoDB $OR per abbinare i documenti inesistenti

Nella query precedente dell'operatore $or, abbiamo recuperato i documenti corrispondenti. Ora, recuperiamo il documento inesistente dalla raccolta 'Paziente'. La seguente query dell'operatore $or prende il documento il cui 'Nome' è 'Charles' e l''Appuntamento' è con il 'Medico'. L'operatore $or abbina questi valori di campo all'interno della raccolta 'Patients' e genera i risultati dopo la corrispondenza.



db.Patients.find ( { $o : [ { 'Nome di battesimo' : 'Carlo' } , { 'Appuntamento' : 'Medico' } ] } ) .bello ( )

L'operatore $or ha un risultato vero e l'altro ha un risultato falso. Poiché specifichiamo 'Appuntamento' con il valore 'Medico' che non corrisponde a nessuno dei documenti nella raccolta 'Paziente'. Ecco perché l'operatore $or restituisce solo il documento del campo corrispondente che è 'Paziente' come output.

Esempio 3: Operatore MongoDB $OR con più argomenti

Abbiamo fornito due argomenti nelle precedenti query $or operator. Qui, passiamo più di due argomenti come espressione dell'operatore $or. Recuperiamo il documento che corrisponde a uno qualsiasi dei valori del campo 'Età' che gli vengono assegnati. Il requisito dell'operatore $or è lo stesso per più argomenti secondo cui una delle espressioni deve essere vera. La query per più argomenti nell'operatore $or è data come segue:

db.Patients.find ( { 'Appuntamento' : 'Medico cardiologo' , $o : [ { 'Età' : venti } , { 'Età' : 35 } , { 'Età' : 69 } ] } )

Lì, abbiamo due risultati corrispondenti ottenuti dall'operatore $or. I valori 'Età' che sono '35' e '69' vengono confrontati con i documenti 'Pazienti' ottenuti dall'operatore $o e visualizzati sulla shell.

Esempio 4: operatore MongoDB $OR con aggregazione

Il metodo di aggregazione in MongoDB combina i record in una raccolta. Pertanto, possono essere utilizzati per diverse operazioni. Eseguiamo l'operatore $or nel metodo di aggregazione che valuta una o più espressioni e restituisce true se qualcuna di esse restituisce true. In caso contrario, l'affermazione è considerata falsa.

Facciamo la query dell'operatore $ o di aggregazione in cui invochiamo prima il metodo aggregate () che quindi distribuisce $ match e $ project che è specificato con il valore _id da abbinare dal documento. Quindi, impostiamo il campo 'Età' con il valore '1' perché vogliamo che questo campo sia generato solo da tutti i documenti. Successivamente, definiamo l'attributo 'Results' che ha l'operazione $or. L'operatore $or accetta l'istruzione condizionale di $gt. L'espressione “$gt:[“$Age”, 69]” fornisce l'età il cui valore è maggiore di “69”. I risultati di questa espressione vengono passati all'operatore $or e l'operatore $or restituisce il documento che soddisfa la condizione specificata.

db.Patients.aggregate (
[
{ $corrispondenza : { _id: IDoggetto ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $progetto : {
_id: IDoggetto ( '6391c61a4c91e007fb4f0227' ) ,
Età: uno ,
Risultato: { $o : [
{ $gt : [ ' $Età ' , 69 ] }
] }
}
}
]
)

L''Età' che è maggiore di '69' è '74' che viene visualizzato nella shell di output insieme ai 'Risultati' che hanno il valore 'vero'.

Esempio 5: l'operatore MongoDB $OR richiama le condizioni

L'operatore $or di MongoDB è un operatore logico. Possiamo usare questo operatore logico con l'operatore condizionale. L'operatore $or restituisce i risultati quando le condizioni sono soddisfatte. Inoltre, possiamo invocare più di una condizione nell'operatore $or di cui una deve essere vera. Qui abbiamo una query dell'operatore $or specificato con due diverse condizioni. La prima condizione è “{Charges:{$lt: 6000}}” che restituisce il documento che è inferiore al valore “Charges” di “6000”. La condizione {Addebiti:“$gt: 7000”} ottiene il documento che è maggiore del valore “Addebiti” di “7000”.

L'operatore $or fornisce il documento corrispondente quando queste condizioni sono soddisfatte. Quindi, specifichiamo i nomi dei campi che vengono mostrati solo quando l'operatore $or fornisce il documento corrispondente.

db.Patients.find ( {
$o : [
{ Oneri: { $ lt : 6000 } } ,
{ Oneri: { $gt : 7000 } }
]
} , {
Nome di battesimo: uno ,
Oneri: uno
} )

L'output visualizza solo i campi 'Nome' e 'Addebiti' per i documenti corrispondenti.

Esempio 6: Operatore MongoDB $OR senza argomento

Tutte le query implementate con l'operatore $or vengono passate con il valore dell'argomento. Ora, definiamo la query dell'operatore $or che non immette alcun argomento. Quando viene eseguito l'argomento vuoto $o la query dell'operatore, valuta i risultati falsi. Forniamo una query in cui l'operazione $or viene passata con l'espressione vuota.

db.Patients.aggregate (
[
{ $corrispondenza : { _id: { $ dentro : [ ID oggetto ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $progetto : {
_id: IDoggetto ( '6391c61a4c91e007fb4f0227' ) ,
Risultato: { $o : [ ] } }
}
]
)

Poiché l'operatore $or viene fornito con un argomento vuoto, i risultati indicano un valore falso.

Esempio 7: L'operatore MongoDB $OR corrisponde ai valori dell'array

Inseriamo l'array “Test” nei documenti che hanno valori diversi. Usiamo quell'array per l'operatore $or per esaminare i risultati. L'operatore $or nella query seguente viene richiamato all'interno del metodo find(). L'operatore $or accetta l'array 'Test' come espressione. L'array 'Test' utilizza l'operatore $in per identificare i documenti i cui valori di campo corrispondono ai valori 'MRI' e 'CT' nell'array.

db.Patients.find ( { $o : [ { Test: { $ dentro : [ 'MRI' , 'CT' ] } } ] } ) .bello ( )

Un documento viene visualizzato sulla shell quando viene eseguito l'operatore di query $ o che mostra che il documento recuperato contiene i valori dell'array specificati.

Conclusione

Questo articolo di MongoDB illustra l'uso di una query MongoDB $or operator per eseguire le operazioni OR logiche su un array che include due o più espressioni, nonché per recuperare i documenti che corrispondono ad almeno una delle espressioni. L'operatore $or viene interrogato nella shell MongoDB per eseguire diverse operazioni. L'operatore $or viene utilizzato negli operatori condizionali come espressione e restituisce i documenti in base alle istruzioni condizionali.