Operator MongoDB LUB

Operator Mongodb Lub



Mamy różne logiczne operatory zapytań, które są dostępne w MongoDB, a jednym z nich jest operator $or. Operator MongoDB $or służy do implementacji logicznej operacji OR na tablicy zawierającej dwa lub więcej wyrażeń i pobierania tylko tych dokumentów, które pasują do dowolnego z określonych wyrażeń w tablicy. Operator $or służy do znajdowania wielu instrukcji w jednym zapytaniu z tylko jednym kryterium pasującym do dokumentu. Operator $or ułatwia kombinację kilku kluczy i wartości.

Jak korzystać z operatora OR w MongoDB

Operator OR w MongoDB jest reprezentowany w formacie „$or”. „$or” służy do umieszczania wielokrotnych wyrażeń w nawiasach kwadratowych, na których wykonywana jest logiczna operacja OR. Używamy operatora $or w kolekcji MongoDB. Tworzymy kolekcję MongoDB zatytułowaną „Patients”. Kolekcja „Patients” jest wstawiana z wieloma dokumentami, na których wykonujemy operator $or. Następujące dokumenty są wstawiane do MongoDB poprzez wywołanie metody insertMany() :

db.Patients.insertMany ( [
{
'Imię' : „Jennifer” ,
'Nazwisko' : „Jozue” ,
'Wiek' : 44 ,
'Numer telefonu' : 43400517 ,
'Spotkanie' : 'Dentysta' ,
'Opłaty' : 2000 ,
'Test' : [ „RTG” , 'Krew' , „Miazga” ]
} ,
{
'Imię' : 'Tomasz' ,
'Nazwisko' : „Steven” ,
'Wiek' : 74 ,
'Numer telefonu' : 39034694 ,
'Data spotkania' : 'Chirurg' ,
'Opłaty' : 6000 ,
'Test' : [ 'Obieralny' , 'PPT' ]
} ,
{
'Imię' : „Karol” ,
'Nazwisko' : „Daniel” ,
'Wiek' : 35 ,
'Numer telefonu' : 65712165 ,
'Spotkanie' : „lekarz kardiolog” ,
'Opłaty' : 2000 ,
'Test' : [ „CT” , „MRI” ]
} ,
{
'Imię' : „Michelle” ,
'Nazwisko' : 'Paweł' ,
'Wiek' : 51 ,
'Numer telefonu' : 54399288 ,
'Spotkanie' : 'Dermatolog' ,
'Opłaty' : 8000 ,
'Test' : [ „Biopsje skóry” , „Światło drewna” , „Zdrapywanie skóry” ]
} ,

{
'Imię' : 'Andrzej' ,
'Nazwisko' : 'Nocnik' ,
'Wiek' : 69 ,
'Numer telefonu' : 6108100 ,
'Spotkanie' : „lekarz kardiolog” ,
'Opłaty' : 7000 ,
'Test' : [ „EKG” , 'Glukoza we krwi' , 'Ultradźwięk' ]
}
] )

Dane wyjściowe wcześniej wstawionych dokumentów potwierdzają wartość „true” i dostarczają wartości „insertedIds” dla każdego dokumentu.









Przykład 1: Operator MongoDB $OR do dopasowania dokumentów

Podstawowe zapytanie operatora MongoDB $or jest tutaj zaimplementowane, co demonstruje działanie tego operatora w MongoDB. Tutaj definiujemy zapytanie za pomocą metody find(). Metoda find() jest dodatkowo określona za pomocą operatora $or. Operator $or pobiera dwa pola „Spotkanie” i „Opłaty”, którym przypisuje się wartości. Operator $or dopasowuje wartość pola i pobiera tylko te dokumenty, których wartości są dopasowane do wartości pola. Struktura zapytania operatora $or jest przedstawiona poniżej:



db.Patients.find ( { $lub : [ { Spotkanie: 'Dermatolog' } ,
{ Opłaty: 7000 } ] } ) .piękny ( )

Pobieramy dokumenty, których „Wizyta” jest u „Dermatologa” i których „Opłaty” wynoszą „7000”. Operator $or znajduje prawdziwe wyniki z obu wartości pól i zwraca dopasowane dokumenty w danych wyjściowych.





Przykład 2: Operator MongoDB $OR do dopasowania nieistniejących dokumentów

W poprzednim zapytaniu operatora $or pobraliśmy dopasowane dokumenty. Teraz pobieramy nieistniejący dokument z kolekcji „Pacjent”. Następujące zapytanie operatora $or pobiera dokument, którego „imię” to „Karol”, a „spotkanie” dotyczy „lekarza”. Operator $or dopasowuje te wartości pól w kolekcji „Patients” i generuje wyniki po dopasowaniu.



db.Patients.find ( { $lub : [ { 'Imię' : „Karol” } , { 'Spotkanie' : 'Lekarz' } ] } ) .piękny ( )

Operator $or ma jeden wynik prawdziwy, a drugi fałszywy. Ponieważ określamy „Wizyta” z wartością „Lekarz”, która nie pasuje do żadnego dokumentu w kolekcji „Pacjent”. Dlatego operator $or zwraca tylko dokument z dopasowanego pola, którym jest „Pacjent” jako dane wyjściowe.

Przykład 3: Operator MongoDB $OR z wieloma argumentami

W poprzednich zapytaniach operatora $lub podaliśmy dwa argumenty. Tutaj przekazujemy więcej niż dwa argumenty jako wyrażenie operatora $lub. Pobieramy dokument, który pasuje do dowolnej z podanych mu wartości pola „Wiek”. Wymóg operatora $or jest taki sam dla wielu argumentów, zgodnie z którymi jedno z wyrażeń powinno być prawdziwe. Zapytanie o wiele argumentów w operatorze $or wygląda następująco:

db.Patients.find ( { 'Spotkanie' : „lekarz kardiolog” , $lub : [ { 'Wiek' : dwadzieścia } , { 'Wiek' : 35 } , { 'Wiek' : 69 } ] } )

Tam mamy dwa dopasowane wyniki, które otrzymujemy od operatora $or. Wartości „Wiek”, które wynoszą „35” i „69”, są porównywane z dokumentami „Pacjenci”, które są uzyskiwane przez operatora $lub i są wyświetlane na powłoce.

Przykład 4: MongoDB $OR Operator z agregacją

Metoda agregująca w MongoDB łączy rekordy w kolekcję. Dzięki temu mogą być wykorzystywane do różnych operacji. Wykonujemy operator $or w metodzie agregacji, która ocenia jedno lub więcej wyrażeń i zwraca wartość true, jeśli którekolwiek z nich ma wartość true. W przeciwnym razie stwierdzenie uznaje się za fałszywe.

Miejmy zapytanie operatora $lub agregacji, w którym najpierw wywołujemy metodę agregat(), która następnie wdraża $match i projekt $, który jest określony z wartością _id do dopasowania z dokumentu. Następnie ustawiamy pole „Wiek” na wartość „1”, ponieważ chcemy, aby tylko to pole było generowane ze wszystkich dokumentów. Następnie definiujemy atrybut „Wyniki”, który ma operację $or. Operator $or przyjmuje instrukcję warunkową $gt. Wyrażenie „$gt:[„$Age”, 69]” podaje wiek, którego wartość jest większa niż „69”. Wyniki dla tego wyrażenia są przekazywane do operatora $or, a operator $or zwraca dokument spełniający określony warunek.

db.Pacjenci.agregat (
[
{ $dopasowanie : { _id: Identyfikator obiektu ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $projekt : {
_id: Identyfikator obiektu ( '6391c61a4c91e007fb4f0227' ) ,
Wiek: jeden ,
Wynik: { $lub : [
{ $ gt : [ ' $Wiek ' , 69 ] }
] }
}
}
]
)

„Wiek” większy niż „69” to „74”, który jest wyświetlany w powłoce wyjściowej wraz z „Wynikami”, które mają wartość „prawdziwą”.

Przykład 5: Operator MongoDB $OR wywołuje warunki

Operator $or MongoDB jest operatorem logicznym. Możemy użyć tego operatora logicznego z operatorem warunkowym. Operator $or zwraca wyniki, gdy warunki są spełnione. Ponadto możemy wywołać więcej niż jeden warunek w operatorze $or, z którego jeden musi być prawdziwy. Tutaj mamy zapytanie operatora $or, które jest określone za pomocą dwóch różnych warunków. Pierwszy warunek to „{Opłaty:{$lt: 6000}}”, który zwraca dokument mniejszy niż wartość „Opłaty” wynosząca „6000”. Warunek {Opłaty:„$gt: 7000”} pobiera dokument, który jest większy niż wartość „Opłaty” wynosząca „7000”.

Operator $or podaje dopasowany dokument, gdy te warunki są spełnione. Następnie określamy nazwy pól, które są wyświetlane tylko wtedy, gdy operator $or poda dopasowany dokument.

db.Patients.find ( {
$lub : [
{ Opłaty: { $lt : 6000 } } ,
{ Opłaty: { $ gt : 7000 } }
]
} , {
Imię: jeden ,
Opłaty: jeden
} )

Dane wyjściowe wyświetlają tylko pola „Imię” i „Opłaty” dla dopasowanych dokumentów.

Przykład 6: MongoDB $OR Operator bez argumentu

Wszystkie zaimplementowane zapytania z operatorem $or są przekazywane z wartością argumentu. Teraz definiujemy zapytanie operatora $or, które nie wprowadza żadnego argumentu. Gdy pusty argument $lub zapytanie operatora jest wykonywane, ocenia fałszywe wyniki. Podajemy zapytanie, w którym operacja $or jest przekazywana z pustym wyrażeniem.

db.Pacjenci.agregat (
[
{ $dopasowanie : { _ID: { $w : [ Identyfikator obiektu ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $projekt : {
_id: Identyfikator obiektu ( '6391c61a4c91e007fb4f0227' ) ,
Wynik: { $lub : [ ] } }
}
]
)

W wyniku podania operatorowi $or pustego argumentu wyniki podają wartość fałszywą.

Przykład 7: Operator MongoDB $OR dopasowuje wartości tablicy

Wstawiamy tablicę „Test” w dokumentach, które mają różne wartości. Używamy tej tablicy dla operatora $or w celu sprawdzenia wyników. Operator $or w poniższym zapytaniu jest wywoływany wewnątrz metody find(). Operator $or przyjmuje tablicę „Test” jako wyrażenie. Tablica „Test” używa operatora $in do identyfikacji dokumentów, których wartości pól odpowiadają wartościom „MRI” i „CT” w tablicy.

db.Patients.find ( { $lub : [ { Test: { $w : [ „MRI” , „CT” ] } } ] } ) .piękny ( )

Jeden dokument jest wyświetlany w powłoce, gdy wykonywany jest operator $lub query, który pokazuje, że pobrany dokument zawiera określone wartości tablicowe.

Wniosek

Ten artykuł MongoDB ilustruje użycie zapytania operatora MongoDB $or do wykonania operacji logicznej OR na tablicy zawierającej dwa lub więcej wyrażeń, a także do pobrania dokumentów pasujących do co najmniej jednego z wyrażeń. Operator $or jest odpytywany w powłoce MongoDB w celu wykonania różnych operacji. Operator $or jest używany w operatorach warunkowych jako wyrażenie i zwraca dokumenty na podstawie instrukcji warunkowych.