Aggregation in MongoDB: Pipeline & Syntax

Veröffentlicht: 2020-09-23

Inhaltsverzeichnis

Einführung

MongoDB ist eine Form eines hochvolumigen Datenspeichermediums. Es fungiert als nicht relationale Datenbank mit Dokumentenabfragen. Die Grundeinheit in MongoDB sind Schlüssel-Wert-Paare der Dokumente in der MongoDB-Sammlung. Ab den frühen 2000er Jahren wurde es zu einem sehr nützlichen Medium.

Die Aggregation in MongoDB ist ein Framework, mit dem wir verschiedene Rechenaufgaben für Dokumente in einer oder mehreren MongoDB-Sammlungen ausführen können. Es ist eine effektive Möglichkeit, Berichte oder eine Handvoll Datenmetriken zur Interpretation aus verschiedenen Dokumenten zu generieren. Das Framework wird als MongoDB bezeichnet, da es mehrere Dokumente aggregiert, um vereinte und kombinierte Ergebnisse zu bilden.

Die Aggregation in MongoDB enthält hauptsächlich das Pipeline-Framework. Das zugrunde liegende Grundkonzept der Pipeline besteht darin, dass Eingaben aus einer MongoDB-Sammlung entnommen werden und die Dokumente eine Reihe von Phasen durchlaufen, um schließlich eine einheitliche Ausgabe zu erzeugen. Diese Idee ist dem Linux-Pipeline-Konzept, dh Bash, sehr ähnlich.

Hauptmerkmale von MongoDB

Es gibt viele Gründe, warum dieses Datenbanksystem weit verbreitet ist. Nachfolgend werden einige Besonderheiten genannt:

  • MongoDB ist als NoSQL-Datenbank sehr flexibel einsetzbar. Es ist dokumentenorientiert.
  • Schlüssel-Wert-Paare können die Felder innerhalb des Dokuments indizieren. Dies ist ein ganz besonderes Feature von MongoDB.
  • MongoDB teilt ein großes Dataset mithilfe eines Sharding-Konzepts in kleine Instanzen auf. Auf diese Weise kann es über viele Server laufen und die Instanzen im Gleichgewicht halten.
  • Abfragen in MongoDB können bestimmte Felder in einem Dokument zurückgeben.

Lesen Sie: MongoDB-Projektideen und -themen

Warum ist Aggregation in MongoDB nützlich?

Es kann vorkommen, dass eine Million eingebetteter Dateien verarbeitet werden müssen. Dies kann jedoch zu einem Überlauf im Serverstapel und zum Abbruch des Prozesses führen. Die Einschränkung, eine große Anzahl eingebetteter Dateien zu verarbeiten, erlaubte die Verbesserung des Scanprozesses, indem die Dateien miteinander verknüpft wurden.

Daher wurde die Aggregationsoperation entwickelt, um die Dokumente in verschiedenen Phasen zu berechnen und den kumulativen Effekt als Ergebnis anzuzeigen und zurückzugeben. Die Matching-Technik der Ergebnisgenerierung hat die Ausgabe einer großen Anzahl von Dateien revolutioniert. Daher ist das Aggregationsframework von wesentlicher Bedeutung.

Dieses Framework kann viele Abfragevorgänge für verschiedene Dateien gleichzeitig ausführen. Es hat viel Ähnlichkeit mit relationalen Datenbankabfragen.

Schauen Sie sich an: Die gängigsten MongoDB-Befehle

Was ist die Aggregationspipeline?

Eine Pipeline ist ein Rahmen aus kontinuierlichen Phasen, die darauf ausgelegt sind, separate Aufgaben auszuführen, die zusammen ein einheitliches Ziel erreichen. Hier in MongoDB Aggregation dient dieses Framework dem Berechnungsprozess und manipuliert die Dokumente. Viele Dokumente aus der MongoDB-Sammlung werden als Input bereitgestellt und sind spezifisch für die Methodik; In jeder Phase wird eine bestimmte Aufgabe ausgeführt.

Später werden alle Ergebnisse zusammengeführt und kumulative Metriken berechnet, die als Ausgabe angezeigt werden. Die Ausgabe ist den Abfrageausgaben von relationalen Datenbanken ziemlich ähnlich, dh ein Strom von Dokumenten, die zusätzlich bearbeitet werden müssen. Später kann es bei der Erstellung von Berichten zur Erstellung von Websites verwendet werden.

Hier fungiert also jede Stufe als Verarbeitungseinheit. Für jede interne Stufe fungiert der Ausgang der vorherigen Stufe als Eingang. Außerdem können in der Anfangsphase zusätzliche Filter hinzugefügt werden. Die Stufen werden oft mit vielen Hyperparametern entworfen. Zu diesem Zweck sind einige Drehknöpfe oder Abstimmknöpfe vorgesehen, um sie zu steuern. Das Ändern dieser Hyperparameter wirkt sich auf die Ergebnisse dieser Phase aus. Dies parametrisiert die Aufgabe, an deren Ausführung man interessiert ist. Auf diese Weise führt eine Stufe eine generische Aufgabe aus.

Es kann Situationen geben, in denen man einen ähnlichen Phasentyp mehrmals in eine bestimmte Pipeline aufnehmen möchte. Beispielsweise kann im Anfangsteil ein Filter vorhanden sein, um nicht die gesamte Sammlung passieren zu lassen. Aber später, nach einiger Verarbeitung, kann ein weiterer Filter für ein anderes Kriterium benötigt werden.

Syntax

Es gibt ein bestimmtes Format, in dem die Aggregationsabfragen erstellt werden. Die Syntax und das Format des Codes sind unten dargestellt.

db.Collection_Name.aggregate([

{ $match: {“_id_field_”: value}}

{ $group: {“_id_field_”: value}}

{ $sort: {“_id_field_”: value}}

]);

Pipeline-Befehle

  • Strukturbefehle : Strukturbefehle helfen, die Dokumente zu organisieren und sie für Datenbearbeitungsoperationen geeignet zu machen. Es gibt zwei grundlegende Strukturbefehle, die sehr häufig verwendet werden.
  1. Matching : Dies ist die Filterstufe. Diese Phase schneidet die Dokumente aus, um die Sie sich nicht kümmern. Dieser Befehl hat große Ähnlichkeit mit der WHERE- Funktion von SQL.

db.customers.aggregate([

{$match: {"zip": 700068}}

]);

Der obige Codeabschnitt gibt die Dokumente aller Kunden aus den MongoDB-Sammlungen zurück, die in der Postleitzahl 700068 leben.

1. Gruppierung : Nach dem Filtern der Dokumente ist die spezifische Gruppierung erforderlich. Dies ermöglicht die Bildung von Teilmengen der gesamten Sammlung. Außerdem können Dokumente nach ähnlichen Gemeinsamkeiten gruppiert werden. Clustering hilft dabei, ähnliche Operationen gemeinsam auszuführen.

db.customers.aggregate([

{$match: {"zip": 700068}}

{

$gruppe: {

_id: null,

Anzahl: {

$summe: 1

}

}

]);

$group ermöglicht das Clustering der Dokumente, um Transformationsoperationen durchzuführen. Der Befehl _id befasst sich mit der Beibehaltung von Datenfeldern.

2. Sortieren : Dies hilft, die Dokumente basierend auf einem bestimmten Abfragefeld in aufsteigender oder absteigender Reihenfolge zu sortieren.

db.customers.aggregate([

{$match: {"zip": 700068}}

{

$gruppe: {

_id: null,

Anzahl: {

$summe: 1

}

}

{

$sortieren: {

{"zip": -1}

}

}

]);

Dadurch werden die Dokumente nach ihrer Postleitzahl sortiert.

  • Betriebsbefehle : Es gibt viele Betriebsbefehle in MongoDB Aggregation , die bei der Ausführung der Datenaufgaben helfen. Einige der wichtigsten Befehle sind im Folgenden beschrieben:
  1. Summation ($sum) : Gibt die Addition aller Werte aus den Dokumenten zurück.
  2. Maximum ($max) : Gibt den maximalen Wert einer bestimmten Variable aus allen Dokumenten aus.
  3. Minimum ($min) : Gibt den Mindestwert einer Variablen zurück.
  4. Durchschnitt ($avg) : Berechnet den Mittelwert der Werte aus jedem Dokument.
  5. Push ($push) : Hängt einen Wert an ein Array an.
  6. First ($first) : Gibt das erste Dokument aus einer Sammlung zurück.
  7. Last ($last) : Gibt das letzte Dokument aus einer Sammlung zurück.
  8. Zu Set hinzufügen ($addToSet) : Hängt einen Wert an ein Array eines Dokuments an, ohne ihn zu duplizieren.

Lesen Sie auch: Zukünftiger Umfang von MongoDB

Einpacken

In dieser Ära von Big Data sind nicht relationale Datenbanken sehr nützlich, um große Stichprobenmengen zu handhaben. Heutzutage sind die Bereiche Data Science und Entwicklung an die Verwendung von MongoDB gewöhnt. Dieses Framework kann mit gängigen Sprachen wie Java, JavaScript, Python und vielen anderen Sprachen verwendet werden. Kenntnisse in MongoDB und ein solides Händchen mit einem Aggregations-Framework können zu einer Traumkarriere führen.

Wenn Sie sich bereits für MongoDB interessieren Aggregation und suchen Sie nach einigen Online-Kursen. Schauen Sie sich unser Programm PG Diploma in Software Development Specialization in Big Data an, das für Berufstätige konzipiert ist und mehr als 7 Fallstudien und Projekte bietet, 14 Programmiersprachen und Tools abdeckt, praktische praktische Workshops und mehr mehr als 400 Stunden rigoroses Lernen und Unterstützung bei der Stellenvermittlung bei Top-Unternehmen.

In diesem Fall wird Ihnen dieser Kurs sicherlich helfen, alle Kenntnisse in Bezug auf Datenstrukturen und Algorithmen, Java-Programmierung, Grundlagen von Datenbanken, HTML, CSS, JavaScript, Angular, Java, objektorientierte Analyse und Design zu erwerben.

Mehr als 250 Stunden Online-Unterricht, Einzelsitzungen mit Branchenexperten und vieles mehr sind in diesem Kurs verfügbar. Darüber hinaus wird der Kurs von Fachexperten von upGrad kuratiert und Sie erhalten Praktikumsmöglichkeiten bei Top-IT-Unternehmen, produktbasierten Unternehmen und Start-ups.

Lernen Sie Softwareentwicklungskurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Führen Sie die datengesteuerte technologische Revolution an

Advanced Certificate Program in Big Data vom IIIT Bangalore