Agregacja w MongoDB: potok i składnia

Opublikowany: 2020-09-23

Spis treści

Wstęp

MongoDB to forma nośnika danych o dużej objętości. Działa jako nierelacyjna baza danych z zapytaniami o dokumenty. Podstawową jednostką w MongoDB są pary klucz-wartość dokumentów w kolekcji MongoDB. Od początku XXI wieku stał się bardzo korzystnym medium.

Agregacja w MongoDB to framework, który pozwala nam wykonywać różne zadania obliczeniowe na dokumentach w jednej lub kilku kolekcjach MongoDB. Jest to skuteczny sposób generowania raportów lub kilku wskaźników danych do interpretacji z różnych dokumentów. Struktura nosi nazwę MongoDB, ponieważ agreguje wiele dokumentów, tworząc zunifikowane i połączone wyniki.

Agregacja w MongoDB zawiera przede wszystkim strukturę potoku. Podstawową koncepcją potoku jest to, że dane wejściowe są pobierane z kolekcji MongoDB, a dokumenty są przekazywane przez szereg etapów, aby ostatecznie wygenerować ujednolicone dane wyjściowe. Ten pomysł jest bardzo podobny do koncepcji potoku Linuksa, tj. Bash.

Kluczowe cechy MongoDB

Istnieje wiele powodów, dla których ten system baz danych jest szeroko stosowany. Niektóre specjalne funkcje są wymienione poniżej:

  • MongoDB, będąca bazą danych NoSQL, jest bardzo elastyczna w użyciu. Jest zorientowany na dokumenty.
  • Pary klucz-wartość mogą indeksować pola wewnątrz dokumentu. To jest bardzo specjalna funkcja MongoDB.
  • MongoDB dzieli duży zestaw danych na małe instancje, korzystając z koncepcji shardingu. W ten sposób może działać na wielu serwerach, utrzymując instancje w równowadze.
  • Zapytania w MongoDB mogą zwracać określone pola w dokumencie.

Przeczytaj: Pomysły i tematy projektów MongoDB

Dlaczego agregacja w MongoDB jest przydatna?

Może się zdarzyć, że konieczne będzie przetworzenie miliona osadzonych plików. Może to jednak spowodować przepełnienie stosu serwerów i zakończenie procesu. Ograniczenie przetwarzania dużej liczby osadzonych plików pozwoliło na ulepszenie procesu skanowania poprzez powiązanie plików ze sobą.

Dlatego operacja agregacji została zaprojektowana tak, aby obliczyć dokumenty na różnych etapach i pokazać skumulowany efekt jako wynik i zwrócić go. Dopasowana technika generowania wyników zrewolucjonizowała problematykę ogromnej liczby plików. Dlatego niezbędne są ramy agregacji.

Ta struktura może jednocześnie wykonywać wiele operacji zapytań na różnych plikach. Ma duże podobieństwo do zapytań do relacyjnej bazy danych.

Sprawdź: najpopularniejsze polecenia MongoDB

Czym jest potok agregacji?

Potok to struktura ciągłych etapów zaprojektowana do wykonywania oddzielnych zadań, które razem rozwiązują jeden ujednolicony cel. Tutaj, w MongoDB Aggregation , ten framework obsługuje proces obliczeniowy i manipuluje dokumentami. Wiele dokumentów z kolekcji MongoDB jest podawanych jako dane wejściowe i są specyficzne dla metodologii; na każdym etapie wykonywane jest określone zadanie.

Później wszystkie wyniki są zbiorczo łączone i obliczane są skumulowane metryki, które są wyświetlane jako dane wyjściowe. Dane wyjściowe są dość podobne do wyników zapytań z relacyjnych baz danych, tj. strumienia dokumentów, które mają działać dodatkowo. Później może być wykorzystany do generowania raportów z tworzenia stron internetowych.

Tak więc każdy stopień działa tutaj jako jednostka przetwarzająca. Dla każdego stopnia wewnętrznego wyjście z poprzedniego stopnia działa jako wejście. Ponadto na początkowym etapie można dodać dodatkowe filtry. Etapy są często projektowane z wieloma hiperparametrami. W tym celu przewidziano kilka pokręteł lub przycisków strojenia do ich sterowania. Zmiana tych hiperparametrów wpływa na wyniki tego etapu. To sparametryzowało zadanie, którym jesteśmy zainteresowani. W ten sposób etap wykonuje ogólne zadanie.

Mogą zaistnieć sytuacje, w których można chcieć wielokrotnie uwzględnić podobny rodzaj etapu w określonym potoku. Na przykład w początkowej części może znajdować się filtr, aby nie przepuszczać całej kolekcji. Ale później, po pewnym przetworzeniu, może być potrzebny inny filtr dla innego kryterium.

Składnia

Istnieje określony format, w którym budowane są zapytania agregujące. Składnia i format kodu pokazano poniżej.

db.Nazwa_kolekcji.agregat([

{ $match: {„_id_field_”: wartość}}

{ $grupa: {„_id_field_”: wartość}}

{ $sort: {„_id_field_”: wartość}}

]);

Polecenia potoku

  • Polecenia strukturalne : Polecenia strukturalne pomagają organizować dokumenty i dostosowywać je do operacji manipulacji danymi. Istnieją dwa podstawowe polecenia strukturalne, które są bardzo często używane.
  1. Dopasowywanie : To jest etap filtrowania. Na tym etapie wycinane są dokumenty, którymi się nie zajmujemy. To polecenie jest bardzo podobne do funkcji WHERE języka SQL.

db.klienci.aggregate([

{ $match: {„zip”: 700068}}

]);

Powyższy fragment kodu zwraca dokumenty wszystkich klientów, którzy mieszkają w kodzie pocztowym 700068, z kolekcji MongoDB.

1. Grupowanie : Po przefiltrowaniu dokumentów potrzebne jest określone grupowanie. Umożliwia to tworzenie podzbiorów całej kolekcji. Ponadto dokumenty mogą być grupowane według podobnych cech wspólnych. Klastrowanie pomaga wykonywać na nich podobne operacje razem.

db.klienci.aggregate([

{ $match: {„zip”: 700068}}

{

$grupa: {

_id: null,

Liczyć: {

$suma: 1

}

}

]);

$group umożliwia grupowanie dokumentów w celu wykonania operacji transformacji. Polecenie _id zajmuje się zachowywaniem pól danych.

2. Sortuj : Pomaga posortować dokumenty w porządku rosnącym lub malejącym na podstawie dowolnego pola zapytania.

db.klienci.aggregate([

{ $match: {„zip”: 700068}}

{

$grupa: {

_id: null,

Liczyć: {

$suma: 1

}

}

{

$sortuj: {

{„zip”: -1}

}

}

]);

To posortuje dokumenty na podstawie ich kodu pocztowego.

  • Polecenia operacyjne : w agregacji MongoDB jest wiele poleceń operacyjnych , które pomagają w wykonywaniu zadań związanych z danymi. Poniżej opisano niektóre z najważniejszych poleceń:
  1. Sumowanie ($sum) : Zwraca sumę wszystkich wartości z dokumentów.
  2. Maksimum ($max) : Wyprowadza maksymalną wartość określonej zmiennej ze wszystkich dokumentów.
  3. Minimum ($min) : Zwraca minimalną wartość zmiennej.
  4. Średnia ($średnia) : Oblicza średnią wartości z każdego dokumentu.
  5. Push ($push) : Dołącza wartość do tablicy.
  6. First ($first) : Zwraca pierwszy dokument z kolekcji.
  7. Ostatni ($last) : Zwraca ostatni dokument z kolekcji.
  8. Dodawanie do zestawu ($addToSet) : dołącza wartość do tablicy dokumentu bez jej duplikowania.

Przeczytaj także: Przyszły zakres MongoDB

Zawijanie

W erze Big Data nierelacyjne bazy danych są bardzo przydatne do obsługi dużych zbiorów próbek. Obecnie dziedzina nauki i rozwoju danych jest dobrze przyzwyczajona do korzystania z MongoDB. Ta platforma działa z popularnymi językami, takimi jak Java, JavaScript, Python i wieloma innymi językami. Znajomość MongoDB i rozsądna ręka z ramami agregacji może pomóc w karierze marzeń.

Jeśli już zainteresowałeś się MongoDB agregacji i wyszukiwania niektórych kursów online, sprawdź nasz program PG Diploma in Software Development Specialization in Big Data, który jest przeznaczony dla pracujących profesjonalistów i zawiera ponad 7 studiów przypadków i projektów, obejmuje 14 języków i narzędzi programowania, praktyczne warsztaty, więcej ponad 400 godzin rygorystycznej pomocy w nauce i pośrednictwie pracy w najlepszych firmach.

W takim przypadku ten kurs z pewnością pomoże Ci zdobyć całą wiedzę dotyczącą struktur danych i algorytmów, programowania w języku Java, podstaw bazy danych, HTML, CSS, JavaScript, Angular, Java, analizy i projektowania obiektowego.

Ten kurs oferuje ponad 250 godzin nauczania online, indywidualne sesje z ekspertami z branży i znacznie więcej. Oprócz tego kurs będzie prowadzony przez ekspertów merytorycznych z upGrad, a Ty będziesz mieć możliwość stażu w najlepszych firmach IT, firmach produktowych i start-upach.

Ucz się kursów rozwoju oprogramowania online z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Poprowadź rewolucję technologiczną opartą na danych

Zaawansowany program certyfikacji w Big Data z IIIT Bangalore