Ten rozdział wprowadza koncept Pipeline Agregacji w MongoDB, który jest głównie używany do analizy statystycznej, podobnie jak polecenie group by w SQL. W powłoce MongoDB, analiza statystyczna jest osiągana za pomocą funkcji db.collection.aggregate().

Koncept

Pipeline Agregacji to abstrakcyjny koncept, który traktuje dane jak wodę płynącą przez rurociąg. Możemy przetwarzać dane w wielu etapach wewnątrz pipeline'u. Po przetworzeniu danych w jednym etapie, przetworzone wyniki są przekazywane do następnego etapu w celu dalszego przetwarzania.

Przykłady zastosowania pipeline'u agregacji w analizie statystycznej:

  • W pierwszym etapie, partia danych dokumentów jest pobierana z kolekcji na podstawie określonych warunków.
  • W drugim etapie, pobrane dane dokumentów są grupowane i agregowane.
  • W trzecim etapie, dane zagregowane z drugiego etapu są sortowane.

Cały proces przypomina operację rurociągu, gdzie dane wpływają z jednego końca pipeline'u, przechodzą przez kilka etapów przetwarzania, a następnie generują ostateczny wynik.

Obsługiwane Operatory Pipeline w MongoDB

Poniżej znajdują się wspólne operatory pipeline obsługiwane przez MongoDB:

Operator Opis
$match Etap $match służy do filtrowania danych dokumentów na podstawie warunków, podobnie jak warunek where w SQL.
$group Etap $group służy do grupowania i agregowania danych dokumentów, podobnie jak klauzula group by w SQL.
$sort Używane do sortowania danych.

Kroki do Użycia Pipeline Agregacji

Zazwyczaj zaangażowane są trzy kroki:

  • Filtrowanie docelowych danych za pomocą $match.
  • Grupowanie i agregowanie danych za pomocą $group.
  • Sortowanie wyników za pomocą $sort (opcjonalne).

Przykład:

db.orders.aggregate([
                     { $match: { status: "A" } },
                     { $group: { _id: "$cust_id", total: { $sum: "$amount" } } },
                     { $sort: { total: -1 } }
                   ])

Odpowiednik SQL:

select sum(amount) as total from orders 
		where status="A" 
		group by cust_id 
		order by total desc

Uwaga: Aby uzyskać więcej informacji na temat analizy statystycznej agregatów, prosimy o odniesienie się do kolejnych rozdziałów.