MONGODB $ MIN, $ MAX i $ AVG Operatorzy

MONGODB $ MIN, $ MAX i $ AVG Operatorzy
MongoDB jest bardzo ogromny pod względem posiadania różnych operatorów specjalnych przez. Te operatory można zastosować do ciągów, liczb całkowitych i innych rodzajów wartości lub pól. Istnieją również niektóre operatory porównawcze, takich jak operatorzy MIN i MAX. Operator MongoDB Min służy do znalezienia najniższej wartości w określonym polu kolekcji, podczas gdy operator MongoDB Max jest używany do znalezienia najwyższej wartości w określonym polu kolekcji. Oprócz tego operator MongoDB AVG jest odrzucony, aby obliczyć średnią wartość określonego pola. W tym przewodniku omówimy użycie każdego operatora jeden po drugim.

Utwórz kolekcję

„DB.Polecenie CreateCollection („Order”) ”jest stosowane do stworzenia nowej kolekcji w bazie danych MongoDB. Kolekcja nosi nazwę „zamów” w tym przypadku. Po wykonaniu polecenia wyjście to „OK: 1”. Wskazuje to, że kolekcja jest skutecznie tworzona. Pole „OK” w wyjściu jest wskaźnikiem statusu, który zwraca wartość 1, jeśli operacja się powiodła, a wartość 0, jeśli nie jest. Należy zauważyć, że jeśli w bazie danych istnieje kolekcja o tej samej nazwie, polecenie zwraca błąd.

Test> db.CreateCollection („zamów”)
OK: 1

Wstaw dokumenty

„DB.Zamówienie.Polecenie insertMany () „Wkłada wiele dokumentów do kolekcji„ zamów ”w bazie danych„ test ”. Dokumenty, które są wstawiane. Dokumenty zawierają te same wartości dla pól „tytuł” ​​w niektórych rekordach i zawiera unikalne rekordy w polu „Price”. Dane wyjściowe polecenia jest dokumentem, który potwierdza, że ​​wstawienie jest potwierdzone (potwierdzone: true) i pokazuje unikalne obiekty, które są przypisane do każdego z włożonych dokumentów.

Test> db.Zamówienie.INSERTMANY ([ID: 1, tytuł: „SOAP”, cena: 44, id: 2, tytuł: „Szampon”, cena: 94, ID: 3, tytuł: „FaceWash”, cena: 120 , id: 4, tytuł: „mydło”, cena: 65, id: 5, tytuł: „szampon”, cena: 78])

Uznany: prawda,
InsertedIds:
„0”: ObjectID (”63c4eec7ac8011ecc27d7a40”),
„1”: ObjectID (”63c4eec7ac8011ecc27d7a41”),
„2”: ObjectID (”63c4eec7ac8011ecc27d7a42”),
„3”: ObjectID (”63c4eec7ac8011ecc27d7a43”),
„4”: ObjectID (”63c4eec7ac8011ecc27d7a44”)

Wyświetl rekordy

„DB.Zamówienie.Znajdź polecenie () ”jest wykonywane w skorupce MongoDB i służy do pobierania wszystkich dokumentów w kolekcji„ zamów ”. Puste klastrowe klamry wskazują, że do filtrowania dokumentów nie stosuje się żadnych konkretnych kryteriów zapytania, więc wszystkie dokumenty w kolekcji są zwracane. Dane wyjściowe polecenia to lista obiektów JSON, z których każdy reprezentuje dokument w kolekcji „zamów”.

Test> db.Zamówienie.znajdować()
[[[
_id: ObjectID („63C4EEC7AC8011EC27D7A40”), ID: 1, Tytuł: „SOAP”, Cena: 44,
_id: ObjectID („63C4EEC7AC8011EC27D7A41”), ID: 2, Tytuł: „Szampon”, cena: 94,
_id: ObjectID („63C4EEC7AC8011EC27D7A42”), ID: 3, Tytuł: „Facewash”, cena: 120,
_id: ObjectID („63C4EEC7AC8011EC27D7A43”), ID: 4, Tytuł: „SOAP”, Cena: 65,
_id: ObjectID („63C4EEC7AC8011EC27D7A44”), ID: 5, Tytuł: „Szampon”, cena: 78
]

Przykład 1: MongoDB $ Min Operator

W pierwszym przykładzie tego artykułu omówimy użycie operatora „min” za pomocą prostych ilustracji MongoDB. Poniższe polecenie używa funkcji agregacji MongoDB do grupowania dokumentów w kolekcji „Zamów” w polu „Tytuł”. Następnie oblicza minimalną „cenę” w każdej grupie. Pierwszym argumentem przekazanym do funkcji łącznej jest szereg etapów rurociągów. W takim przypadku istnieje tylko jeden etap rurociągu, który wykorzystuje operator grupy $ do grupowania dokumentów według pola „Tytuł”, które jest określone jako pole „_id” w operatorze grupy $. Operator oblicza również minimalną „cenę” w każdej grupie i przypisuje ją do pola „Minprice”.

Powstałe wyjście to tablica obiektów, przy czym każdy obiekt reprezentuje grupę dokumentów o tym samym polu „tytułu”. Dane wyjściowe pokazują, że istnieją trzy grupy dokumentów z różnymi pól „tytuł” ​​- „mydło”, „szampon” i „twarz”. Cena minimalna dla każdej grupy wynosi odpowiednio 44, 78 i 120.

Test> db.Zamówienie.agregate ([$ grupa: _id: „$ title”, minprice: $ min: „$ cena”]))))
[[[
_id: „mydło”, minister: 44,
_ID: „szampon”, minime: 78,
_ID: „Facewash”, minime: 120
]

Przykład 2: MongoDB $ Max Operator

Oto kilka przykładów do omówienia i użycia operatora „maks.” W MongoDB. Załączona instrukcja wykorzystuje funkcję agregatów MongoDB do grupowania kolekcji zamówień według pola „Tytuł”. W grupie tworzy dwa nowe pola: „PriceWithTax” i „MAXPRICE”. Pole „PriceWithTax” używa operatora $ Max, aby znaleźć maksymalną wartość wyniku operatora $ Add. Operator $ Add dodaje 10 do pola „Cena” dla każdego dokumentu w grupie. Oznacza to, że pole „PriceWithTax” ma najwyższą wartość pola „ceny” plus 10 dla każdej grupy dokumentów o tej samej „tytule”.

Pole „MAXPRICE” używa operatora $ Max, aby znaleźć maksymalną wartość pola „Cena” dla każdej grupy dokumentów o tej samej „tytułu”. Dane wyjściowe polecenia to szereg dokumentów pokazujących pola „Tytuł”, „PriceWithTax” i „MAXPRICE” dla każdej grupy dokumentów w zbiorze zamówień. Dokumenty są uporządkowane przez pole „Tytuł”. Na przykład pierwszy dokument w wyniku pokazuje, że „tytuł” ​​to „Szampon”, „cenawithTax” to 104 (najwyższa wartość pola „Cena” plus 10 dla wszystkich dokumentów z „tytułem” „szamponu”), a „MAXPRICE” to 94 (najwyższa wartość pola „ceny” dla wszystkich dokumentów z „tytułem” „Szamponu”).

Test> db.Zamówienie.agregate ([$ grupa: _id: "$ title", cenawithTax: $ max: $ add: ["$ cena", 10], maxprice: $ max: "$ cena"] )
[[[
_id: „szampon”, cenawithTax: 104, MAXPRICE: 94,
_id: „Facewash”, cenawithTax: 130, MAXPRICE: 120,
_id: „SOAP”, cenawithTax: 75, MAXPRICE: 65
]

Przykład 3: MongoDB $ AVG Operator

Na naszej ostatniej ilustracji tego przewodnika obejmujemy operatora „AVG” MongoDB, aby znaleźć średnią wartość z określonego pola kolekcji. Funkcja kruszywa MongoDB służy do grupowania dokumentów w kolekcji „Zamów” według ich pola „Tytuł”. W każdej grupie oblicza średnią wartość „ceny” i tworzy nowe pole o nazwie „AVGPRICE” do przechowywania tej wartości. Rezultatem tego polecenia jest tablica obiektów, przy czym każdy obiekt reprezentuje grupę dokumentów o tej samej wartości „tytułu”. Obiekt zawiera wartość „tytułu” jako pole „_id” i obliczoną średnią wartość „ceny” jako pole „AVGPRICE”.

W tym przypadku istnieją trzy grupy: „mydło”, „szampon” i „twarz”. Średnia cena dla grupy „mydlania” wynosi 54.5. Średnia cena grupy „Szampon” wynosi 86. A średnia cena dla grupy „FACEWASH” wynosi 120, w następujący sposób:

Test> db.Zamówienie.agregate ([$ grupa: _id: "$ title", avgprice: $ avg: "$ cena"]))))
[[[
_ID: „SOAP”, AVGPRICE: 54.5,
_id: „szampon”, avgprice: 86,
_id: „Facewash”, avgprice: 120
]

Wniosek

Wprowadzenie naszego artykułu wyjaśnia zastosowania i różnice trzech bardzo powszechnych i najczęściej używanych operatorów w MongoDB - operatorów Min, Max i AVG. Wychodząc z przykładów, wyjaśniliśmy metody wykorzystania tych operatorów w trzech osobnych ilustracjach. Pierwsza ilustracja wyjaśnia operator MIN, druga ilustracja wyjaśnia „Max”, podczas gdy trzecia ilustracja wyjaśnia użycie operatora „AVG”. Jeśli masz zbiór dokumentów, które reprezentują pewne wartości numeryczne, możesz wypróbować operatorów Min, Max i AVG, aby znaleźć najniższe, najwyższe i przeciętne wartości.