Operator MongoDB $ min

Operator MongoDB $ min
Jeśli nie jesteś nowym użytkownikiem baz danych lub programów, musisz wypróbować programy i zapytania, które wykorzystują operatorów porównawczych - większe niż, mniej niż, równe itp. W MongoDB, gdzie używamy operatora „$ SET” do aktualizacji określonego rekordu pola lub dodania nowego rekordu do bazy danych, możemy również osiągnąć ten sam wynik przy użyciu operatorów porównawczych, takich jak „$ min” i „$ Max”. W MongoDB operator „$ min” można wykorzystać w wielu zapytaniach funkcyjnych do aktualizacji określonego pola, gdy nowa wartość jest niższa niż już wstawiona wartość. Można go również wykorzystać do grupowania i wyświetlania rekordów kolekcji w określonej kolejności. Ten przewodnik pomaga w różnych sposobach odrzucenia operatora „$ min” w MongoDB.

Przykład 1:

Począwszy od pierwszej ilustracji, pokazujemy użycie operatora „$ min” w MongoDB do aktualizacji już wstawionego rekordu za pomocą narzędzia MongoDB Shell w systemie Windows. Dlatego musisz mieć pewne rekordy, które są już dodane do Twojej bazy danych. Używamy więc zapytania o funkcję insertMY (), aby dodać łącznie 5 rekordów w kolekcji „zamów” bazy danych „testowych”. Każda z włożonych rekordów, które pokazano na następują. Te 5-rekordowe dane są skutecznie wstawiane zgodnie z załączonym wyjściem:

Test> db.zamówienie.INSERTMANY ([„ID”: 01, „Tytuł”: „SOAP”, „SalePrice”: 500, „Podatek”: 24,
… „ID”: 02, „Tytuł”: „Szampon”, „SalePrice”: 700, „Podatek”: 27,
… „ID”: 03, „Tytuł”: „detergent”, „SalePrice”: 400, „podatek”: 22,
… „ID”: 04, „Tytuł”: „Perfume”, „SalePrice”: 900, „Podatek”: 30,
… „Id”: 05, „tytuł”: „mgła”, „saleprice”: 850, „podatek”: 27])

Czas spojrzeć na włożony rekord w „testowej” bazie danych. W tym celu musisz odrzucić metodę „Find ()” wraz z metodą „foreach”, biorąc „printJSON” jako argument w instrukcji „DB”. Korzystając z kolekcji o nazwie „zamów”, na ekranie mamy rekord wyświetlany.

Test> db.zamówienie.znajdować().Foreach (printJson)

Najwyższy czas, aby użyć operatora „$ min” w zapytaniu funkcyjnym „updateOne”, aby zaktualizować pojedynczy rekord z kolekcji „zamów”, który został właśnie utworzony. Pole „ID” jest używane jako unikalny identyfikator do aktualizacji określonego rekordu z bazy danych, podczas gdy operator „$ min” jest stosowany do pola „SalePrice”, aby zaktualizować jego wartość do 600, jeśli jest mniejsza niż już wstawiona wartość. Komunikat wyjściowy pokazuje, że zapytanie się powiodło, ale nie przeprowadzono żadnych aktualizacji.

Test> db.zamówienie.aktualizacja (id: 3, $ min: salePrice: 600)

Powodem, dla którego nie ma aktualizacji w polu „SalePrice” trzeciego rekordu, jest to, że zawiera on wartość „400”, która jest mniejsza niż „600”. Dlatego operator „$ min” nie aktualizuje minimalnej wartości „400” o większej wartości „600” zgodnie z następującym dołączonym zapytaniem FINK ():

Test> db.zamówienie.znajdować().Foreach (printJson)

Zróbmy trochę zmiany w zapytaniu aktualizacji, aby tym razem uzyskać inne wyjście. Używamy tej samej instrukcji „DB”, która wykorzystuje w niej funkcję „UpdateOne” do modyfikacji pojedynczego zapisu „3”. Operator „$ min” jest stosowany do pola „SalePrice”, aby ustawić swoją wartość na „300”, jeśli wartość „300” jest niższa niż już włożona wartość. Wiemy, że już wstawiona wartość „400” pola SalePrice jest większa niż nowa wartość „300” do porównania. Tym razem zastępuje „400” na „300”. Komunikat wyjściowy pokazuje pomyślne wykonanie tego zapytania. Zmodyfikowana liczba = 1 oznacza, że ​​1 rekord jest modyfikowany.

Test> db.zamówienie.aktualizacja (id: 3, $ min: salePrice: 300)

Po wyświetleniu rekordów kolekcji „zamów” z bazy danych „Test” w formacie JSON za pomocą instrukcji funkcji „Find ()” w MongoDB Shell, stwierdziliśmy, że trzeci rekord jest pomyślnie aktualizowany. Wartość 400 pola „SalePrice” jest zastąpiona wartością 300.

Test> db.zamówienie.znajdować().Foreach (printJson)

Przykład 2:

W ramach tej ilustracji MongoDB pobieramy rekordy konkretnej bazy danych, grupując je dotyczące operatora „$ min” zgodnie z minimalną wartością w rekordach. Załóżmy, że masz te same 5 rekordów w kolekcji „Zamów” bazy danych „Test” MongoDB i musisz mieć pewne zduplikowane dane w poszczególnych polach bazy danych „testowej”. W tym celu dodajemy więcej rekordów w kolekcji „zamów” bazy danych „test”. Tym razem wstawiamy zduplikowane wartości dla pola „Tytuł”. Jest używany w klauzuli „$ grupy” do utworzenia grupy unikalnych wartości. Poniższe dane wyjściowe wyświetla nowo wprowadzone 3 rekordy dla bazy danych „Test”. Teraz kolekcja „Zamów” ma zduplikowane wartości dla pola „Tytuł” ​​w porównaniu z 5 starymi rekordami. Reszta używa tego samego.

Po posiadaniu w sumie 8 rekordów w kolekcji „zamów” bazy danych „testowych” nadszedł czas, aby przetestować operator $ min MongoDB po jego aplikacji na określonym polu, który jest pogrupowany według innego pola. Załączone polecenie kruszywa dotyczy tego. Zaczyna się od słowa kluczowego „DB”, a następnie nazwy kolekcji w określonej bazie danych i funkcji agregate (). Funkcja zagregowana zaczyna się od użycia klauzuli $ grupy MongoDB, która jest tutaj szczególnie używana do wyświetlania danych w grupie dotyczącej pola „tytułu” bazy danych „testu”, w którym pole „tytuł” ​​jest traktowane jako unikalny klucz.

Jednocześnie pole ceny jest inicjowane osobno, co przyjmuje tylko minimalną rekord wartości z całkowitej liczby tych samych rekordów za pośrednictwem operatora „$ min”, który jest do niego zastosowany. Wyjście tego wykonywania zapytania pokazuje wyświetlanie 5 rekordów z małą aktualizacją w sekcji ceny. Możesz zobaczyć, że nie wyświetli się powtarzalnych rekordów. Wyświetlane są tutaj niektóre unikalne i najmniejsze rekordy wartości.

Test> db.zamówienie.agregate ([$ grupa: _id: „$ title”, cena: $ min: „$ salePrice”])))))

Wniosek

Ten przewodnik jest zbiorem ilustracji MongoDB, aby wyświetlić prosty sposób, aby użyć operatora „$ min”. Udział wprowadzający jest wykorzystywany do omówienia celu jego zastosowania w MongoDB. Pierwsza część tego artykułu omawia, jak działa operator „$ min” i nie działa dla jednego rekordu w bazie danych, i.mi. Aby zaktualizować lub wstawić rekord jako minimalną wartość. Ponadto ostatnie przykłady pokazują jego użycie do grupowania rekordu kolekcji jako unikalnej w całej bazie danych.