Operator MongoDB $ min

Operator Mongodb Min



Jeśli nie jesteś nowym użytkownikiem baz danych lub programowania, na pewno próbowałeś programów i zapytań wykorzystujących operatory porównania – większy niż, mniejszy niż, równy itp. W MongoDB, gdzie używamy operatora „$set” do zaktualizować konkretny rekord pola lub dodać nowy rekord do bazy danych, możemy również osiągnąć ten sam wynik za pomocą operatorów porównania, takich jak „$min” i „$max”. W MongoDB operator „$min” może być używany w wielu zapytaniach funkcyjnych do aktualizowania określonego pola, gdy nowa wartość jest mniejsza niż wartość już wstawiona. Można go również wykorzystać do grupowania i wyświetlania rekordów kolekcji w określonej kolejności. Ten przewodnik pomoże ci na różne sposoby odrzucania operatora „$min” w MongoDB.

Przykład 1:

Zaczynając od pierwszej ilustracji, demonstrujemy użycie operatora „$min” w MongoDB do aktualizacji już wstawionego rekordu za pomocą narzędzia powłoki MongoDB w systemie Windows. Dlatego musisz mieć jakieś rekordy, które są już dodane do twojej bazy danych. Używamy więc zapytania funkcji insertMany(), aby dodać w sumie 5 rekordów w kolekcji „order” „testowej” bazy danych. Każdy z wstawionych rekordów pokazanych na poniższej ilustracji zawiera łącznie 4 pola — identyfikator, tytuł, cenę sprzedaży i podatek. Te 5-rekordowe dane zostały pomyślnie wstawione zgodnie z załączonym wyjściem:

test > db.zamówienie.wstawwiele ( [ { 'ID' :01, 'Tytuł' : 'Mydło' , 'Cena sprzedaży' : 500 , 'Podatek' : 24 } ,
... { 'ID' :02, 'Tytuł' : 'szampon' , 'Cena sprzedaży' : 700 , 'Podatek' : 27 } ,
... { 'ID' :03, 'Tytuł' : 'Detergent' , 'Cena sprzedaży' : 400 , 'Podatek' : 22 } ,
... { 'ID' :04, 'Tytuł' : 'Perfumy' , 'Cena sprzedaży' : 900 , 'Podatek' : 30 } ,
... { 'ID' :05, 'Tytuł' : 'Mgła' , 'Cena sprzedaży' : 850 , 'Podatek' : 27 } ] )







Czas przyjrzeć się wstawionemu rekordowi w „testowej” bazie danych. W tym celu musisz odrzucić metodę „find()” wraz z metodą „forEach”, przyjmując „printjson” jako argument w instrukcji „db”. Wykorzystując kolekcję o nazwie „zamówienie” mamy zapis wyświetlany na ekranie.



test > db.zamówienie.znajdź ( ) .dla każdego ( printjson )



Najwyższy czas użyć operatora „$min” w zapytaniu funkcji „updateOne”, aby zaktualizować pojedynczy rekord z kolekcji „order”, która właśnie została utworzona. 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ż wprowadzona wartość. Komunikat wyjściowy pokazuje, że zapytanie powiodło się, ale nie zostały wprowadzone żadne aktualizacje.





test > db.order.updateOne ( { ID: 3 } , { $ min : { Cena sprzedaży: 600 } } )

Powodem braku aktualizacji pola „SalePrice” trzeciego rekordu jest to, że zawiera ono wartość „400”, która jest mniejsza niż „600”. W związku z tym operator „$min” nie aktualizuje minimalnej wartości „400” większą wartością „600” zgodnie z poniższym dołączonym zapytaniem find():



test > db.zamówienie.znajdź ( ) .dla każdego ( printjson )

Wprowadźmy małą zmianę w zapytaniu aktualizującym, aby tym razem uzyskać inne dane wyjściowe. Używamy tej samej instrukcji „db”, która wykorzystuje w niej funkcję „updateOne”, aby zmodyfikować pojedynczy rekord „3”. Operator „$min” jest stosowany do pola „SalePrice”, aby ustawić jego wartość na „300”, jeśli wartość „300” jest mniejsza niż już wstawiona wartość. Wiemy, że już wstawiona wartość „400” pola SalePrice jest większa niż nowa wartość „300” do porównania. Tym razem zastępuje „400” słowem „300”. Komunikat wyjściowy pokazuje pomyślne wykonanie tego zapytania. Zmodyfikowana liczba = 1 oznacza, że ​​zmodyfikowano 1 rekord.

test > db.order.updateOne ( { ID: 3 } , { $ min : { Cena sprzedaży: 300 } } )

Po wyświetleniu rekordów kolekcji „order” z „testowej” bazy danych w formacie JSON za pomocą instrukcji funkcji „find()” w powłoce MongoDB, stwierdziliśmy, że trzeci rekord został pomyślnie zaktualizowany. Wartość 400 w polu „SalePrice” zostaje zastąpiona wartością 300.

test > db.zamówienie.znajdź ( ) .dla każdego ( printjson )

Przykład 2:

W ramach tej ilustracji MongoDB pobieramy rekordy z określonej bazy danych, grupując je w odniesieniu do operatora „$min” zgodnie z minimalną wartością w rekordach. Załóżmy, że masz te same 5 rekordów w kolekcji „zamówień” „testowej” bazy danych MongoDB i potrzebujesz zduplikowanych danych w poszczególnych polach „testowej” bazy danych. W tym celu dodajemy kolejne rekordy w kolekcji „zamówienie” bazy danych „test”. Tym razem wstawiamy zduplikowane wartości dla pola „Tytuł”. Jest używany w klauzuli „$group” w celu utworzenia grupy unikalnych wartości. Poniższe dane wyjściowe wyświetlają nowo wstawione 3 dodatkowe rekordy dla „testowej” bazy danych. Teraz kolekcja „zamówienie” ma zduplikowane wartości w polu „Tytuł” ​​w porównaniu z 5 starymi rekordami. Reszta używa tego samego.

Mając łącznie 8 rekordów w zbiorze „zamówień” „testowej” bazy danych, nadszedł czas na przetestowanie operatora $min MongoDB po jego zastosowaniu na określonym polu, które jest pogrupowane według innego pola. Załączone polecenie agregujące dotyczy tego wszystkiego. Zaczyna się od słowa kluczowego „db”, po którym następuje nazwa kolekcji w określonej bazie danych i funkcja agregatu(). Funkcja agregująca rozpoczyna się od użycia klauzuli $group z MongoDB, która jest tutaj szczególnie używana do wyświetlania danych w grupie dotyczącej pola „Tytuł” ​​bazy danych „test”, gdzie pole „Tytuł” ​​jest traktowane jako unikalny klucz .

W tym samym czasie pole ceny jest inicjowane oddzielnie, co pobiera tylko rekord wartości minimalnej z 8 takich samych rekordów za pośrednictwem zastosowanego do niego operatora „$min”. Dane wyjściowe tego wykonania zapytania pokazują wyświetlanie 5 rekordów z niewielką aktualizacją w sekcji ceny. Widać, że nie są wyświetlane żadne powtarzające się rekordy. Tutaj wyświetlane są niektóre unikalne i najmniejsze rekordy wartości.

test > db.zamówienie.agregacja ( [ { $grupa : { _ID: ' $Tytuł ' , Cena £: { $ min : ' $WyprzedażCena ' } } } ] )

Wniosek

Ten przewodnik jest zbiorem ilustracji MongoDB pokazujących prosty sposób użycia operatora „$min”. Akapit wprowadzający został wykorzystany do omówienia celu jego użycia w MongoDB. W pierwszej części tego artykułu omówiono, jak działa i nie działa operator „$min” dla pojedynczego rekordu w bazie danych, czyli do aktualizacji lub wstawienia rekordu jako wartości minimalnej. Ponadto ostatnie przykłady demonstrują jego użycie do grupowania rekordów kolekcji jako unikalnych w całej bazie danych.