Jak działa agregacja grupy w MongoDB?
Operator grupy $ powinien być używany do grupowania dokumentów wejściowych zgodnie z określonym wyrażeniem _id. Powinien następnie zwrócić pojedynczy dokument z całkowitymi wartościami dla każdej osobnej grupy. Na początek wdrożeniu stworzyliśmy kolekcję „książek” w MongoDB. Po utworzeniu kolekcji „książek” wstawiliśmy dokumenty związane z różnymi dziedzinami. Dokumenty są wstawiane do kolekcji metodą InsertMany () jako wykonywane zapytanie, pokazano poniżej.
> db.Książki.wstrząsDokumenty są z powodzeniem przechowywane w kolekcji „książek” bez napotkania jakiegokolwiek błędu, ponieważ dane wyjściowe jest uznane za „prawdziwe”. Teraz użyjemy tych dokumentów kolekcji „książek” do wykonania agregacji „$ grupy”.
Przykład nr 1: Zastosowanie agregacji grupy $
Wykazano tutaj proste użycie agregacji grupy $. Zgadzane wprowadzanie zapytania Operator „$ Group” najpierw, a następnie operator „$ grupa” dalej przyjmuje wyrażenia w celu wygenerowania zgrupowanych dokumentów.
> db.Książki.agregat([Powyższe zapytanie operatora grupy $ jest określone w polu „_id” w celu obliczenia całkowitych wartości dla wszystkich dokumentów wejściowych. Następnie pole „_id” jest przydzielane do „$ autor.nazwa ”, która tworzy inną grupę w polu„ _id ”. Oddzielne wartości $ autora.Nazwa zostanie zwrócona, ponieważ nie obliczamy żadnych skumulowanych wartości. Wykonanie zapytania grupy $ Group ma następujące dane wyjściowe. Pole _id ma wartości autora.nazwy.
Przykład nr 2: Zastosowanie agregacji grupy $ z $ push akumulator
Przykład agregacji grupy $ wykorzystuje dowolny akumulator, który jest już wspomniany powyżej. Ale możemy użyć akumulatorów w agregacji grupy $. Operatorzy akumulatora to te, które są używane na polach dokumentów wejściowych innych niż te, które są „zgrupowane” w „_id”. Załóżmy, że chcemy wepchnąć pola wyrażenia do tablicy, a następnie akumulator „$ push” jest wywoływany w operatorze „$ grupy”. Przykład pomoże ci lepiej zrozumieć akumulator „$ push” „grupy $”.
> db.Książki.agregat(Tutaj chcemy zgrupować opublikowaną datę roku podanych książek w tablicy. Powyższe zapytanie należy zastosować, aby to osiągnąć. Zapytanie do agregacji jest wyposażone w wyrażenie, w którym operator „$ grupa” przyjmuje wyrażenie pola „_id” i wyrażenie pola „roku”, aby uzyskać rok grupowy za pomocą $ push akumulator. Wyjście pobrane z tego konkretnego zapytania tworzy gamę pól rocznych i przechowuje w nim zwrócony dokument zgrupowany.
Przykład nr 3: Zastosowanie agregacji grupy z akumulatorem „$ min”
Następnie mamy akumulator „$ min”, który jest używany w agregacji grupy $, aby uzyskać minimalną wartość dopasowywaną z każdego dokumentu w kolekcji. Wyrażenie zapytania dla akumulatora $ min jest podane poniżej.
> db.Książki.agregat([Zapytanie ma wyrażenie agregacji „$ grupa”, w których zgrupowaliśmy dokument dla pól „tytuł” i „order_status”. Następnie dostarczyliśmy akumulator $ min, który zgrupował dokumenty, otrzymując minimalne wartości cen z pola zorganizowanych. Kiedy uruchomimy to zapytanie $ min akumulator poniżej, zwraca zgrupowane dokumenty według tytułu i order_status w sekwencji. Minimalna cena pojawia się pierwsza, a najwyższa cena dokumentu jest ostatnia.
Przykład nr 4: Użyj agregacji grupy $ z akumulatorem $ sum
Aby uzyskać sumę wszystkich pól numerycznych za pomocą operatora grupy $, operacja akumulatora $ sum jest wdrożona. Wartości nie-numeryczne w kolekcjach są brane pod uwagę przez ten akumulator. Ponadto używamy tutaj agregacji $ mecz z agregacją grupy $. Agregacja $ Match akceptuje warunki zapytania podane w dokumencie i przekazuje dopasowany dokument do agregacji grupy $, która następnie zwraca sumę dokumentu dla każdej grupy. W przypadku akumulatora $ sum zapytanie jest przedstawione poniżej.
> db.Książki.agregat([Powyższe zapytanie agregacji rozpoczyna się od operatora $ mecz, który pasuje do wszystkich „order_status”, którego status jest „w magazynie” i przekazany do grupy $ jako wejście. Następnie operator grupy $ ma wyrażenie akumulatora $ sum, które wyświetla sumę wszystkich książek w akcji. Zauważ, że „$ sum: 1” dodaje 1 do każdego dokumentu należącego do tej samej grupy. Wyjście tutaj pokazało tylko dwa zgrupowane dokumenty, które mają „order_status” powiązane z „w magazynie”.
Przykład nr 5: Użyj agregacji grupy $ z agregacją $ sort
Operator grupy $ jest używany z operatorem „$ sort”, który służy do sortowania zgrupowanych dokumentów. Poniższe zapytanie ma trzy kroki do operacji sortowania. Pierwszy jest etap $ mecz, a następnie $ grupy, a ostatni jest etapem $ sort, który sortuje zgrupowany dokument.
> db.Książki.agregat([Tutaj przyniosliśmy dopasowany dokument, którego „order_status” jest poza magazynem. Następnie dopasowany dokument znajduje się na etapie $ grupy, który zgrupował dokument w polu „Authorname” i „Totalbooks”. Wyrażenie grupy $ jest powiązane z akumulatorem $ sum do całkowitej liczby książek „poza magazynem”. Dokumenty zgrupowane są następnie sortowane z wyrażeniem $ sort w kolejności rosnącej, ponieważ „1” wskazuje tutaj zamówienie rosnące. Sortowany dokument grupy w określonej kolejności jest uzyskiwany w następującym wyjściu.
Przykład nr 6: Użyj agregacji grupy $ dla odrębnej wartości
Procedura agregacji grupuje również dokumenty według przedmiotu za pomocą operatora grupy $ w celu wyodrębnienia odrębnych wartości elementów. Miejmy wyrażenie zapytania tego stwierdzenia w MongoDB.
> db.Książki.agregate ([$ grupa: _id: „$ title”])).ładny();Zapytanie do agregacji jest stosowane do kolekcji książek, aby uzyskać odrębną wartość dokumentu grupy. Grupa $ tutaj przyjmuje wyrażenie _id, które wyświetla odrębne wartości, ponieważ wprowadzamy do niej pole „Tytuł”. Dane wyjściowe dokumentu grupy jest uzyskiwane po uruchomieniu tego zapytania, które ma grupę nazw tytułów na polu _id.
Wniosek
Przewodnik miał na celu wyczyszczenie koncepcji operatora agregacji grupy $ do grupowania dokumentu w bazie danych MongoDB. Podejście kruszywa MongoDB poprawia zjawiska grupowania. Struktura składniowa operatora grupy $ została wykazana z przykładowymi programami. Oprócz podstawowego przykładu operatorów grupy $, zatrudniliśmy tego operatora z niektórymi akumulatorami, takimi jak $ push, $ min, $ suma i operatorzy tacy jak $ mecz i $ sort.