Operator MongoDB $ Max

Operator MongoDB $ Max
MongoDB wymyślił wielu operatorów, aby przeprowadzić transakcje specjalne, takie jak aktualizacja rekordów, dodanie nowego rekordu i wyświetlanie rekordów w określonym stanie. Jednym z tych operatorów jest operator „$ max”, który służy do sprawdzenia największej wartości w rekordzie. Oprócz tego możemy użyć go do aktualizacji najmniejszej wartości o nowej największej wartości po porównaniu ich w instrukcji funkcji „aktualizacja”. Drugim użyciem operatora „$ Max” jest grupowanie i wyświetlanie rekordów określonej kolekcji w sposób, w jaki może wyświetlać największą wartość tylko ignorując najmniejszą wartość, gdy w bazie danych znajdują się pewne zduplikowane rekordy. W tym przewodniku użyjemy prostych przykładów zapytania, aby omówić wcześniej wspomniane zastosowania operatora „$ Max” w narzędzia linii poleceń MongoDB na naszej platformie Windows.

Przykład 1:

Począwszy od ilustracji do omówienia i jak działa operator „$ Max” w powładzie MongoDB, musimy mieć kolekcję o nazwie „dane”, które należy już utworzyć. Aby utworzyć tę kolekcję, musimy dodać do niej kilka rekordów bez użycia instrukcji „Utwórz”. Instrukcja wstawki wystarczy, aby utworzyć kolekcję i dodać w niej rekordy. W zapytaniu używamy funkcji „InsertMany”, aby dodać cztery rekordy, z których każda ma 4 pola różnych typów.

Test> db.dane.INSERTMANY ([„ID”: 1, „Nazwa”: „Bravo”, „pensja”: 65000, „wiek”: 44,
… „Id”: 2, „nazwa”: „Stephen”, „pensja”: 77000, „wiek”: 55,
… „Id”: 3, „nazwa”: „maria”, „pensja”: 42000, „wiek”: 27,
… „ID”: 4, „Nazwa”: „Hawkin”, „wynagrodzenie”: 58000, „wiek”: 33]))

Polecenie Insert jest skuteczne, a komunikat wyjściowy pokazuje, że rekordy są dodawane.

Po włożeniu rekordów w kolekcji „danych” naszego MongoDB nadszedł czas, aby zobaczyć te rekordy na powładzie. W ten sposób uruchamiamy instrukcję funkcji „Find ()” na MongoDB CLI, a następnie funkcji „foreach ()”, biorąc argument printJSON, aby wyświetlić wynik w formacie JSON. Wynik wyświetlany w powładzie pokazuje w sumie 4 dokumenty w kolekcji, które pokazano na następującym obrazie wyjściowym:

Test> db.dane.znajdować().Foreach (printJson)

Wypróbujmy operator „$ Max” w poleceniu aktualizacji MongoDB, aby zmodyfikować już wstawione rekordy. Zatem aktualizacja () jest tutaj używana do modyfikacji tylko jednego rekordu kolekcji „danych”, jak konkretny rekord, w którym pole „id” ma wartość „2”. Operator „$ Max” jest stosowany do pola „wynagrodzenia” kolekcji „danych”, aby sprawdzić, czy pole „wynagrodzenia” ma wartość większą niż 55000. Jeśli nie, zaktualizuj rekord 55000. Wynik wyjściowy dla tego zapytania funkcyjnego updateOne (), które pokazuje liczbę modyfikacji „0” jako rekord „2”, ma mniej niż 55000 wartości wynagrodzeń.

Test> db.dane.aktualizacja (id: 2, $ max: pensja: 55000)

Po tej aktualizacji wypróbujemy to samo zapytanie o funkcję „Znajdź ()”, aby wyświetlić zmodyfikowany wynik na powładzie linii polecenia MongoDB. Ale otrzymujemy to samo wyjście, które otrzymaliśmy przed użyciem instrukcji „aktualizacja”. Nie było zmiany, ponieważ wartość 77000 jest większa niż 55000.

Test> db.dane.znajdować().Foreach (printJson)

Wypróbujmy to samo zapytanie o aktualizację () z niewielką modyfikacją. Tym razem próbujemy większej wartości, jaką jest „85000” niż wartość „77000”, która już przebywa w polu „Wynagrodzenie” kolekcji „danych”, aby zmienić nasze wyjście. Wyjście pokazuje, że liczba modyfikacji „1” tym razem jako wartość „85000” zastępuje już wartość przebywania „77000” w polu po tym, jak porównanie nastąpiło tylko z powodu operatora „$ Max” w tym zapytaniu.

Test> db.dane.aktualizacja (id: 2, $ max: pensja: 85000)

Po pomyślnym zastąpieniu mniejszej wartości „77000” nową wartością „85000” za pośrednictwem operatora „$ Max” MongoDB, w końcu używamy funkcji „Znajdź ()” w instrukcji „DB”, aby sprawdzić tę aktualizację, czy jest to pomyślnie zaktualizowane, czy nie. Dane wyjściowe pokazuje, że wartość w polu „Wynagrodzenie” 2. rekordu w tej kolekcji jest doskonale zaktualizowana.

Test> db.dane.znajdować().Foreach (printJson)

Przykład 2:

Przejdźmy do innego przykładu, aby skorzystać z operatora „$ Max” w MongoDB. Tym razem odrzuciliśmy operator „$ Max”, aby grupować i wyświetlać unikalne rekordy kolekcji, jeśli istnieją jakieś duplikaty dla tych samych wartości pola. W tym celu wprowadzamy 2 dodatkowe rekordy w kolekcji „danych” bazy danych „testowych”. Te rekordy zawierają 2 te same wartości w polu „Nazwa”, które są również w już włożonym 4 rekordy, a reszta jest inna. Aby wstawić rekordy, wykorzystujemy tę samą instrukcję „DB”, która zawiera funkcję „InsertMany” dla kolekcji „danych”, aby zostać zaktualizowanym.

Test> db.dane.INSERTMANY ([„ID”: 5, „Nazwa”: „Bravo”, „pensja”: 35000, „wiek”: 45,
… „Id”: 6, „nazwa”: „Hawkin”, „pensja”: 67000, „wiek”: 33])

Instrukcja jest wykonywana pomyślnie.

Teraz, gdy dodano 2 nowe rekordy, możesz je również wyświetlić za pomocą tej samej funkcji „Znajdź” w instrukcji „DB”, a następnie funkcji „Foreach”. Poniższe wyświetlanie na obrazie pokazuje 2 nowe rekordy na końcu tej kolekcji:

Test> db.dane.znajdować().Foreach (printJson)

Po wyświetleniu 6 rekordów kolekcji „danych” jesteśmy gotowi wykonać na niej funkcję agregowaną. Stąd funkcja „agregaty” jest wykorzystywana w następujących wymienionych zapytaniach. Dzięki tej funkcji używamy operatora „$ grupy” do grupowania rekordu kolekcji „danych” zgodnie z unikalnymi nazwami pola „id” i pola „wynagrodzenia”. Operator „$ Max” jest stosowany do pola „wynagrodzenia” rekordów, aby uzyskać maksymalne wartości wyświetlane. Uzyskaj największą wartość z pola wynagrodzenia według duplikatów w polu „Nazwa”, które jest używane jako „id” dla tego grupy, które ma być wyświetlane. Wyświetlane są w sumie 4 rekordy. Najmniejsza wartość (z duplikatów) jest ignorowana, podczas gdy największa wartość jest wyświetlana.

db.dane.agregate ([$ grupa: _id: "$ name", pensja: $ max: "$ pensja"])))))

Wniosek

Pierwszy akapit tego przewodnika pomaga zrozumieć znaczenie operatorów używanych w MongoDB, zwłaszcza operatora „$ Max” i jego użycie w skorupce MongoDB. Ten przewodnik zawiera dwa przykłady oparte na poleceniu związane z operatorem „$ Max”, aby wykazać się jego celem. Przechodząc ilustracje MongoDB, będziesz mógł wykonać użyteczne transakcje w bazie danych, niezależnie od tego, czy chodzi o zastąpienie już istniejącego rekordu nową wartością, czy wyświetlanie rekordów poprzez grupowanie ich za pośrednictwem operatora „$ Max”.