Wie funktioniert die Gruppenaggregation in MongoDB??
Der $ Group -Operator sollte verwendet werden, um die Eingabedokumente gemäß dem angegebenen Ausdruck zu gruppieren. Es sollte dann ein einzelnes Dokument mit den Gesamtwerten für jede separate Gruppe zurückgeben. Zunächst haben wir die Kollektion „Bücher“ in MongoDB erstellt. Nach der Erstellung der Sammlung „Bücher“ haben wir die Dokumente eingefügt, die mit den verschiedenen Feldern verbunden sind. Die Dokumente werden in der Sammlung über die InsertMany () -Methode eingefügt, während die zu ausgeführte Abfrage unten angezeigt wird.
> db.Bücher.InsertMany ([Die Dokumente werden erfolgreich in der Sammlung „Bücher“ gespeichert, ohne Fehler zu begegnen, da die Ausgabe als „wahr“ anerkannt wird. Jetzt werden wir diese Dokumente der Kollektion „Bücher“ für die Durchführung der Aggregation „$ Group“ verwenden.
Beispiel Nr. 1: Verwendung von $ Group Aggregation
Die einfache Verwendung der $ Group -Aggregation wird hier demonstriert. Der aggregierte Abfragebericht gibt zuerst den „$ Group“ -Preiber. Der Operator „$ Group“ nimmt die Ausdrücke weiter, um die gruppierten Dokumente zu generieren.
> db.Bücher.Aggregat([Die obige Abfrage des $ Group -Operators wird mit dem Feld "_id" angegeben, um die Gesamtwerte für alle Eingabedokumente zu berechnen. Dann wird das Feld "_id" dem "$ Autor" zugewiesen.Name “, der eine andere Gruppe im Feld" _id "bildet. Die getrennten Werte von $ verzeichneten.Der Name wird zurückgegeben, da wir keine akkumulierten Werte berechnen. Die Ausführung der $ Group -Aggregate -Abfrage hat die folgende Ausgabe. Das Feld _id hat Werte des Autors.Namen.
Beispiel Nr. 2: Verwendung der $ Group -Aggregation mit dem $ Push -Akkumulator
Das Beispiel der $ Group -Aggregation verwendet jeden Akkumulator, der bereits oben erwähnt wird. Aber wir können die Akkumulatoren in $ Group Aggregation verwenden. Die Akkumulatorbetreiber sind solche, die auf anderen Eingabedokumentfeldern verwendet werden als diejenigen, die unter „_id“ „gruppiert“ sind. Nehmen wir an, wir wollen die Felder des Ausdrucks in ein Array drücken, dann wird der Akkumulator "$ push" im "$ gruppe" -Operator gerufen. Das Beispiel hilft Ihnen dabei.
> db.Bücher.Aggregat(Hier möchten wir das veröffentlichte Jahr der angegebenen Bücher im Array gruppieren. Die obige Abfrage sollte angewendet werden, um dies zu erreichen. Die Aggregationsabfrage wird mit dem Ausdruck versehen, bei dem der Operator „$ Group“ den Feldausdruck „_id“ und den Feld „Jahr“ nimmt, um das Gruppenjahr mit dem $ Push -Akkumulator zu erhalten. Die aus dieser spezifische Abfrage abgerufene Ausgabe erstellt das Array of Year -Felder und speichert das zurückgegebene gruppierte Dokument darin.
Beispiel 3: Verwendung der $ Group -Aggregation mit dem Akkumulator „$ min“
Als Nächst. Der Abfrageausdruck für den $ min -Akkumulator ist unten angegeben.
> db.Bücher.Aggregat([Die Abfrage hat den Aggregationsausdruck "$ Group", in dem wir das Dokument für die Felder "Titel" und "order_status" gruppiert haben. Anschließend haben wir dem Akkumulator $ min die Dokumente gruppiert, indem wir die Mindestpreiswerte von den nicht gruppierten Feldern erhalten haben. Wenn wir diese Abfrage von $ min Accumulator unten ausführen. Der Mindestpreis erscheint zuerst, und der höchste Preis des Dokuments wird zuletzt platziert.
Beispiel Nr. 4: Verwenden Sie die Aggregation $ Group mit dem $ Summe -Akkumulator
Um die Summe aller numerischen Felder mit dem $ Group -Operator zu erhalten. Die nicht numerischen Werte in den Sammlungen werden von diesem Akkumulator berücksichtigt. Darüber hinaus verwenden wir die $ Match -Aggregation hier mit der $ Group -Aggregation. Die $ Match -Aggregation akzeptiert die Abfragebedingungen, die in einem Dokument angegeben sind, und übergeben das übereinstimmende Dokument an die $ Group -Aggregation, die dann die Summe des Dokuments für jede Gruppe zurückgibt. Für den $ sum -Akkumulator wird die Abfrage unten dargestellt.
> db.Bücher.Aggregat([Die obige Abfrage der Aggregation beginnt mit dem $ Match-Operator, der alle „order_status“ entspricht, deren Status „in Festnetz“ ist und an die $ Group als Eingabe übergeht. Anschließend hat der $ Group -Operator den Ausdruck des $ sum. Beachten Sie, dass die "$ sum: 1" zu jedem Dokument, das zur gleichen Gruppe gehört. Die Ausgabe zeigte hier nur zwei gruppierte Dokumente, die den "Order_status" mit "In-Fest) zugeordnet sind.
Beispiel Nr. 5: Verwenden Sie die Aggregation $ Group mit der $ Sort -Aggregation
Der $ Group -Operator hier wird mit dem „$ sort“ -Personal verwendet, mit dem die gruppierten Dokumente sortiert werden. Die folgende Abfrage enthält drei Schritte zum Sortiervorgang. Zuerst ist die $ Match -Phase, dann die $ Group -Stufe und zuletzt die $ -Sortierstufe, in der das gruppierte Dokument sortiert wird.
> db.Bücher.Aggregat([Hier haben wir das übereinstimmende Dokument abgerufen, dessen "order_status" außerhalb des Stockwerks ist. Anschließend wird das übereinstimmende Dokument in der $ Group -Phase eingegeben, in der das Dokument mit dem Feld "Authorname" und der "TotalBooks" gruppiert wurde. Der $ Group-Ausdruck ist mit dem $ summe Akkumulator mit der Gesamtzahl der Bücher außerhalb des Bestehens verbunden. Die gruppierten Dokumente werden dann mit dem Ausdruck von $ sortiert in aufsteigender Reihenfolge sortiert, da „1“ die aufsteigende Reihenfolge angibt. Das sortierte Gruppendokument in der angegebenen Reihenfolge wird in der folgenden Ausgabe erhalten.
Beispiel 6: Verwenden Sie die Aggregation $ Group für einen unterschiedlichen Wert
Das Aggregationsverfahren gruppiert auch die Dokumente mit dem Element mit dem $ Group Operator, um die unterschiedlichen Elementwerte zu extrahieren. Lassen Sie uns den Abfrageausdruck dieser Aussage in MongoDB haben.
> db.Bücher.Aggregate ([$ Group: _id: "$ title"]).hübsch();Die Aggregationsabfrage wird auf die Büchersammlung angewendet, um den unterschiedlichen Wert des Gruppendokuments zu erhalten. Die $ Group nimmt hier den Ausdruck, der die unterschiedlichen Werte ausgibt, da wir das Feld "Titel" dazu eingegeben haben. Die Ausgabe des Gruppendokuments wird beim Ausführen dieser Abfrage erhalten, die die Gruppe von Titelnamen gegen das Feld _id enthält.
Abschluss
Der Leitfaden zielte darauf ab, das Konzept des Aggregationsbetreibers von $ Group für die Gruppierung des Dokuments in der MongoDB -Datenbank zu klären. Der MongoDB -Aggregat -Ansatz verbessert die Gruppierungsphänomene. Die Syntaxstruktur des $ Group -Operators wird mit den Beispielprogrammen demonstriert. Zusätzlich zum grundlegenden Beispiel der $ Group -Betreiber haben wir diesen Betreiber auch mit einigen Akkumulatoren wie $ Push, $ min, $ summe und Betreibern wie $ Match und $ sortiert beschäftigt.