MongoDB obsługuje różnorodne operatory zapytania do wyszukiwania i filtrowania dokumentów w kolekcji. Operatorzy „GT”, „GTE”, „LT” i „LTE” są używane do przeprowadzania pytań porównawczych na polach. Operator „GT” (większy niż) zwraca dokumenty, w których określone pole jest większe niż określona wartość, podczas gdy operator „GTE” (większy lub równy) zwraca dokumenty, gdy określone pole jest większe lub równe określonej wartości. Z drugiej strony operator „LT” (mniej niż) zwraca dokumenty, w których określone pole jest mniejsze niż określona wartość, a operator „LTE” (mniejszy lub równy) Zwraca dokumenty, w których określone pole jest mniejsze lub równe do określonej wartości. We wszystkich tych operatorach jest niewielka różnica, ale metoda stosowania ich w MongoDB jest dość podobna. Omówmy to w tym przewodniku.
Powiedzmy, że masz wszystkie nowo wstawiane rekordy kolekcji „manekina” w aktualnie używanej bazie danych, która jest w sumie 5 rekordów z unikalnymi pól „_id”, „miasto” i „liczba”.
Test> db.Atrapa.znajdować()Przykład nr 01: $ GT Operator
Operator „GT” zostanie użyty do ustawiania lub aktualizacji wartości określonego pola w kolekcji dla jednego rekordu. W tym celu musisz wykonać funkcję „updateOne” MongoDB z zestawem operatora „GT” dla określonego pola. W naszym przypadku zastosowaliśmy aktualiza. Operator „Set” służy do dodania nowego pola „DESC” o wartości „największego miasta na świecie” dla wszystkich tych zapisów o wartości „liczby” większej niż „3”. Tylko 1 rekord został zaktualizowany, ponieważ wypróbowaliśmy instrukcję „aktualizację”.
Test> db.Atrapa.updateOne ("count": $ gt: 3, $ set: "dec": "największe miasto na świecie"))Pierwszy zapis kolekcji „manekina” został zaktualizowany tylko zgodnie z wynikiem wykonania funkcji „Znajdź”. Pole „DESC” jest dodawane do rekordu o nazwie miasta „Teksas”.
Test> db.Atrapa.Znajdź (count: $ gt: 3)Użyjmy funkcji UpdateMny () zamiast aktualizacji (), aby zaktualizować wszystkie rekordy kolekcji „manekina” o wartości pola „liczba” większe niż „3”. Poniższe polecenie zostało użyte w tym celu i mamy potwierdzenie.
Test> db.Atrapa.UpdateMny (count: $ gt: 3, $ set: „desc”: „największe miasto na świecie”))Teraz, po uruchomieniu instrukcji funkcji „Znajdź”, po raz kolejny z operatorem „GT”, ustaw na polu „Count”, w którym wartość jest większa niż „3”, mamy wyjście Pheld-Beelow. Wszystkie 3 rekordy o wartości „liczby” większej niż „3” mają teraz pole „DESC”.
Test> db.Atrapa.Znajdź (count: $ gt: 3)Przykład nr 02: $ GTE Operator
W tym przykładzie omówimy użycie operatora „GTE” MongoDB: większe lub równe. Zostanie użyty do wyszukiwania lub aktualizacji rekordów, które są większe lub równe konkretnej wartości. Funkcja UpdateMany () służy do aktualizacji wielu dokumentów w kolekcji MongoDB o nazwie „Manekin”, gdzie wartość pola „liczba” jest większa lub równa 4. Liczba jest większa niż „4”. Operator „Ustaw” ustawę wartość pola „Count” na 2 dla wszystkich dopasowanych dokumentów. Aktualizacja została wykonana bardzo płynnie.
Test> db.Atrapa.UpdateMny (count: $ gte: 4, $ set: "crowin": 2)Po wyświetleniu zaktualizowanych rekordów kolekcji „manekina” za pomocą funkcji „Znajdź”, mamy poniższy wynik. Pokazuje, że wszystkie rekordy mają teraz wartość „2” w polu „Count”, z wyjątkiem rekordu „3”, w którym liczba jest już zerowa i nie spełnia stanu operatora „GTE” I.mi. Jak pokazało powyższe zapytanie.
Test> db.Atrapa.znajdować()Przykład nr 03: $ LT Operator
Tym razem wykorzystamy operator „LT” MongoDB do aktualizacji rekordów. Polecenie poniżej aktualizuje wiele dokumentów w MongoDB za pomocą funkcji Updatemany () ponownie, w której wartość pola „Count” jest mniejsza niż 4. Operator „Ustaw” ustawia wartość pola „Count” na 3 i wartość pola „DESC” na „miasto średniej wielkości” dla wszystkich dopasowanych dokumentów. Potwierdzenie pokazuje, że w sumie 4 rekordów jest aktualizowane, a 1, który pozostaje niezmieniony, musi mieć wartość „zerową” w polu „liczba”.
Test> db.Atrapa.UpdateMny (count: $ lt: 4, $ set: "crowy": 3, "dec": "miasto średniej wielkości")Po przeszukaniu zapisów kolekcji „manekina”, w której pole liczby ma wszystkie wartości mniejsze niż „4” za pośrednictwem operatora „LT”, zwraca 4 rekordy wszystkie pola „Count” ustawione na „3” i pola „DESC „Ustawiony na„ średniej wielkości miasto ”w następujący sposób:
Test> db.Atrapa.Znajdź (count: $ lt: 4)Przykład nr 04: $ LTE Operator
Począwszy od zapytania dołączonego poniżej, wypróbowaliśmy funkcję „UpdateMany” z jej filtrem Count: $ lte: null. Dopasowuje wszystkie dokumenty, w których wartość pola „liczba” jest mniejsza lub równa NULL. W naszym przypadku istnieje tylko jeden rekord o wartości „zerowej” w polu „Licz”.W drugim argumencie operator „Set” ustawia wartość pola „Count” na 10 i wartość pola „DESC” na „najpiękniejsze i zatłoczone” dla wszystkich dopasowanych dokumentów. Poniższe polecenie aktualizuje pojedynczy rekord w kolekcji „manekina”, w którym wartość pola „Count” jest mniejsza lub równa NULL.
Test> db.Atrapa.UpdateMny (crowiz: $ lte: null, $ set: „crowiz”: 10, „dec”: „Najpiękniejszy i zatłoczony”)Kiedy szukasz rekordu z wartością pola „Count” większą niż „8”, zwraca on jeden rekord, który wcześniej ma wartość „null”.
Test> db.Atrapa.Znajdź (count: $ gt: 8)Wniosek
W tym artykule obejmuje szczegóły celu wykorzystania operatorów GT, GTE, LT i LTE w MongoDB. Pierwszy przykład obejmuje operatora „GT”, a drugi obejmuje operatora „GTE” za pomocą instrukcji MongoDB. Podczas gdy dwie ostatnie ilustracje obejmują szczegółowo użycie operatorów „LT” i „LTE” za pomocą funkcji Updatemania () i operatora „Ustaw”.