Jak korzystać z operatora w MongoDB
OR OR w MongoDB jest reprezentowany w formacie „$ lub”. „$ Lub” służy do zamknięcia wielu wyrażeń w nawiasach kwadratowych, na których wykonywana jest logiczna lub. Używamy $ lub operatora w kolekcji MongoDB. Tworzymy kolekcję MongoDB, która zatytułowana jest „Pacjenci”. Kolekcja „pacjentów” jest wstawiana z wieloma dokumentami, na których wykonujemy $ lub operator. Następujące dokumenty są wstawiane w MongoDB, wywołując metodę InsertMany ():
db.Pacjenci.wstrząs
„FirstName”: „Jennifer”,
„LastName”: „Joshua”,
„Wiek”: 44,
„PhoneNumber”: 43400517,
„Spotkanie”: „dentysta”,
„Opłaty”: 2000,
„Test”: [„Rentodemstwo”, „krew”, „Pulpal”]
,
„FirstName”: „Thomas”,
„LastName”: „Steven”,
„Wiek”: 74,
„PhoneNumber”: 39034694,
„Spotkanie”: „Chirurg”,
„Opłaty”: 6000,
„Test”: [„Elective”, „ppt”]
,
„FirstName”: „Charles”,
„LastName”: „Daniel”,
„Wiek”: 35,
„PhoneNumber”: 65712165,
„Spotkanie”: „Lekarz kardiologii”,
„Opłaty”: 2000,
„Test”: [„CT”, „MRI”]
,
„FirstName”: „Michelle”,
„LastName”: „Paul”,
„Wiek”: 51,
„PhoneNumber”: 54399288,
„Spotkanie”: „Dermatolog”,
„Opłaty”: 8000,
„Test”: [„Biopsies Skin”, „Wood Light”, „Skin Scraping”]
,
„FirstName”: „Andrew”,
„LastName”: „Jerry”,
„Wiek”: 69,
„PhoneNumber”: 6108100,
„Spotkanie”: „Lekarz kardiologii”,
„Opłaty”: 7000,
„Test”: [„EKG”, „Glukoza krwi”, „Ultradźwięki”]]
])
Dane wyjściowe wcześniej wymyślonych dokumentów potwierdzają „True” i podaj wartości „Wstawki” dla każdego dokumentu.
Przykład 1: MongoDB $ lub operator, aby dopasować dokumenty
Wdrożone jest podstawowe zapytanie MongoDB $ lub operatora, które pokazuje działanie tego operatora w MongoDB. Tutaj definiujemy zapytanie metodą Find (). Metoda Find () jest dalej określona w przypadku $ lub operatora. $ Lub operator przyjmuje dwa pola, „spotkanie” i „opłaty”, które są przypisane wartościom. $ Lub operator dopasowuje wartość pola i pobiera tylko te dokumenty, których wartości są dopasowane do wartości pola. Struktura zapytania $ lub operatora znajduje się w następujący sposób:
db.Pacjenci.Znajdź ($ lub: [umówienie: „dermatolog”,
Opłaty: 7000]).ładny()
Prowadzimy dokumenty, których „spotkanie” jest z „dermatologiem” i których „zarzuty” to „7000”. $ Lub operator znajduje prawdziwe wyniki obu wartości pola i zwraca dopasowane dokumenty w wyjściu.
Przykład 2: MongoDB $ lub operator pasujący do nieistniejących dokumentów
W poprzednim zapytaniu $ lub operatora pobieraliśmy dopasowane dokumenty. Teraz odzyskujemy nieistniejący dokument z kolekcji „pacjenta”. Poniższe zapytanie $ lub operator przyjmuje dokument, którego „nazwa pierwszego” to „Charles”, a „spotkanie” jest z „lekarzem”. $ Lub operator dopasowuje te wartości terenowe w kolekcji „pacjentów” i generuje wyniki po dopasowaniu.
db.Pacjenci.Znajdź ($ lub: [„FirstName”: „Charles”, „termin”: „lekarz”])).ładny()
$ Lub operator ma jeden prawdziwy wynik, a drugi ma fałszywy wynik. Jak określamy „spotkanie” z wartością „lekarza”, która nie pasuje do żadnego z dokumentów w kolekcji „pacjenta”. Dlatego $ lub operator zwraca tylko dokument dopasowanego pola, który jest „cierpliwy” jako wyjście.
Przykład 3: MongoDB $ lub operator z wieloma argumentami
Dostarczyliśmy dwa argumenty w poprzednich zapytaniach $ lub operator. Tutaj przekazujemy więcej niż dwa argumenty jako wyrażenie $ lub operator. Odzyskamy dokument pasujący do dowolnej wartości pola „wieku”, które są do niego podane. Wymóg $ lub operatora jest taki sam dla wielu argumentów, że jeden z wyrażeń powinien być prawdziwy. Zapytanie o wiele argumentów w $ lub operator jest podane w następujący sposób:
db.Pacjenci.Znajdź („termin”: „lekarz kardiologii”, $ lub: [„wiek”: 20, „wiek”: 35, „wiek”: 69])
Tam mamy dwa dopasowane wyniki, które są uzyskiwane od $ lub operatora. Wartości „wieku”, które wynoszą „35” i „69”, są porównywane z dokumentami „pacjentów”, które są uzyskiwane przez $ lub operator i są wyświetlane na powładzie.
Przykład 4: MongoDB $ lub operator z agregacją
Metoda łączna w MongoDB łączy rekordy w kolekcję. Dlatego mogą być używane do różnych operacji. Wykonujemy $ lub operator w metodzie agregacji, która ocenia jedno lub więcej wyrażeń i zwraca true, jeśli którykolwiek z nich ocenia true. W przeciwnym razie stwierdzenie jest uważane za fałszywe.
Zróbmy zapytanie $ lub operator agregacji, w której najpierw wywołujemy metodę agregate (), która następnie wdraża projekt $ i projekt $ określony z wartością _id, która ma być dopasowana z dokumentu. Następnie ustawiamy pole „Age” o wartości „1”, ponieważ chcemy, aby to pole było wygenerowane ze wszystkich dokumentów. Następnie definiujemy atrybut „wyniki”, który ma $ lub operację. $ Lub operator przyjmuje warunkowe oświadczenie $ gt. Wyrażenie „$ GT: [„ $ AGE ”, 69]” daje wiek, którego wartość jest większa niż „69”. Wyniki tego wyrażenia są przekazywane do $ lub operatora, a $ lub operator zwraca dokument, który spełnia określony warunek.
db.Pacjenci.agregat(
[[[
$ match: _id: obiektyd ("6391C61A4C91E007FB4F0228"),
$ projekt:
_id: ObjectID („6391C61A4C91E007FB4F0227”),
Wiek: 1,
Wynik: $ lub: [
$ gt: [„$ wiek”, 69]
]
]
)
„Wiek”, który jest większy niż „69” to „74”, który jest wyświetlany w powładzie wyjściowej wraz z „wynikami”, która ma wartość „prawdziwej”.
Przykład 5: MongoDB $ lub operator wywołuje warunki
$ Lub operator MongoDB jest operatorem logicznym. Możemy użyć tego operatora logicznego z operatorem warunkowym. $ Lub operator zwraca wyniki, gdy warunki są spełnione. Ponadto możemy wywołać więcej niż jeden warunek w $ lub operatorze, z którego trzeba być prawdą. Tutaj mamy zapytanie $ lub operatora, które jest określone w dwóch różnych warunkach. Pierwszym warunkiem jest „Charges: $ lt: 6000”, który zwraca dokument mniejszy niż wartość „ładunków” „6000”. Warunki opłaty: „$ gt: 7000” otrzymuje dokument większy niż wartość „ładunków” „7000”.
$ Lub operator podaje dopasowany dokument, gdy te warunki są spełnione. Następnie określamy nazwy pól, które są wyświetlane tylko wtedy, gdy $ lub operator podaje dopasowany dokument.
db.Pacjenci.znajdować(
$ lub: [
Opłaty: $ lt: 6000,
Opłaty: $ gt: 7000
]
,
FirstName: 1,
Opłaty: 1
)
Wyjście wyświetla tylko pola „FirstName” i „Ładunki” dla dopasowanych dokumentów.
Przykład 6: MongoDB $ lub operator bez argumentu
Wszystkie zaimplementowane zapytania z $ lub operatorem są przekazywane z wartością argumentu. Teraz definiujemy zapytanie $ lub operator, które nie wprowadza żadnego argumentu. Po wykonaniu pustego argumentu $ lub operatora ocenia fałszywe wyniki. Podajemy zapytanie, w którym $ lub operacja jest przekazywana z pustym wyrażeniem.
db.Pacjenci.agregat(
[[[
$ match: _id: $ in: [obiektyd ("6391C61A4C91E007FB4F0228")],
$ projekt:
_id: ObjectID („6391C61A4C91E007FB4F0227”),
Wynik: $ lub: []
]
)
W wyniku $ lub operatora jest dostarczany z pustym argumentem, wyniki podają fałszywą wartość.
Przykład 7: MongoDB $ lub operator pasuje do wartości tablicy
Wkładamy tablicę „testu” w dokumentach, które mają różne wartości. Używamy tej tablicy dla $ lub operatora do zbadania wyników. $ Lub operator w następującym zapytaniu jest wywoływany w metodzie Find (). $ Lub operator przyjmuje tablicę „testu” jako wyrażenie. Tablica „testowa” wykorzystuje $ w operatorze do identyfikacji dokumentów, których wartości terenowe odpowiadają wartościom „MRI” i „CT” w tablicy.
db.Pacjenci.Znajdź ($ lub: [test: $ in: [„MRI”, „ct”]])).ładny()
Jeden dokument jest wyświetlany na powłoce, gdy wykonywany jest operator $ lub zapytanie, który pokazuje, że pobrany dokument zawiera określone wartości tablicy.
Wniosek
Ten artykuł MongoDB ilustruje użycie zapytania MongoDB $ lub operator. $ Lub operator jest zapytany w powładzie MongoDB w celu wykonywania różnych operacji. $ Lub operator jest używany w operatorach warunkowych jako wyrażenie i zwraca dokumenty na podstawie instrukcji warunkowych.