MongoDB $ min, $ max und $ avg -Betreiber

MongoDB $ min, $ max und $ avg -Betreiber
MongoDB ist sehr umfangreich in Bezug auf unterschiedliche Spezialbetreiber. Diese Operatoren können auf Zeichenfolgen, Ganzzahlen und andere Arten von Werten oder Feldern angewendet werden. Es gibt auch einige Vergleichsbetreiber wie die Minen- und MAX -Betreiber. Der MongoDB Min -Operator wird verwendet, um den niedrigsten Wert in einem bestimmten Feld einer Sammlung zu finden, während der MongoDB -Max -Operator verwendet wird, um den höchsten Wert in einem bestimmten Bereich einer Sammlung zu finden. Dabei wird der MongoDB-AVG-Operator abgeschaltet, um den Durchschnittswert eines bestimmten Feldes zu berechnen. In diesem Leitfaden werden wir die Verwendung jedes Bedieners nacheinander diskutieren.

Erstellen Sie eine Sammlung

Das „DB.CreateCollection („Order“) “wird verwendet, um eine neue Sammlung in einer MongoDB -Datenbank zu erstellen. Die Sammlung wird in diesem Fall "Order" bezeichnet. Wenn der Befehl ausgeführt wird, lautet die Ausgabe "OK: 1". Dies zeigt an, dass die Sammlung effektiv erstellt wird. Das Feld „OK“ in der Ausgabe ist ein Statusanzeige, der einen Wert von 1 zurückgibt, wenn der Vorgang erfolgreich ist, und einen Wert von 0, wenn dies nicht der Fall ist. Es ist wichtig zu beachten, dass der Befehl einen Fehler zurückgibt, wenn eine Sammlung mit demselben Namen bereits in der Datenbank vorhanden ist.

Test> db.CreateCollection ("Order")
OK: 1

Fügen Sie die Dokumente ein

Das „DB.Befehl.Der Befehl insertMany () ”Fügt mehrere Dokumente in die Sammlung„ Order “in der Datenbank" Test "ein. Die eingefügten Dokumente sind eine Reihe von Objekten, die eine "ID", "Titel" und "Preis" enthalten. Die Dokumente enthalten die gleichen Werte für die "Titel" -Felder in einigen Datensätzen und enthält eindeutige Datensätze im Feld "Preis". Die Ausgabe des Befehls ist ein Dokument, das bestätigt, dass die Einfügung bestätigt wird (bestätigt: TRUE) und die einzigartigen ObjektIDs zeigt, die jedem der eingefügten Dokumente zugeordnet sind.

Test> db.Befehl.InsertMany ([ID: 1, Titel: "Soap", Preis: 44, ID: 2, Titel: "Shampo", Preis: 94, ID: 3, Titel: "FaceWash", Preis: 120 , id: 4, Titel: "Soap", Preis: 65, ID: 5, Titel: "Shampo", Preis: 78])

Anerkannt: wahr,
InsertDIDs:
'0': ObjectID ("63C4EEC7AC8011ECC27D7A40"),
'1': ObjectID ("63C4EEC7AC8011ECC27D7A41"),
'2': ObjectID ("63C4EEC7AC8011ECC27D7A42"),
'3': ObjectID ("63C4EEC7AC8011ECC27D7A43"),
'4': ObjectID ("63C4EEC7AC8011ECC27D7A44")

Zeigen Sie die Datensätze an

Das „DB.Befehl.Der Befehl find () ”wird in der MongoDB -Shell ausgeführt und wird verwendet, um alle Dokumente in der Sammlung„ Order “abzurufen. Die leeren lockigen Zahnspangen zeigen, dass zum Filtern der Dokumente keine spezifischen Abfragekriterien verwendet werden, sodass alle Dokumente in der Sammlung zurückgegeben werden. Die Ausgabe des Befehls ist eine Liste von JSON -Objekten, die jeweils ein Dokument in der Sammlung „Order“ darstellen.

Test> db.Befehl.finden()
[
_id: ObjectID ("63C4EEC7AC8011ECC27D7A40"), ID: 1, Titel: 'Soap', Preis: 44,
_id: ObjectID ("63C4EEC7AC8011ECC27D7A41"), ID: 2, Titel: 'Shampo', Preis: 94,
_id: ObjectID ("63C4EEC7AC8011ECC27D7A42"), ID: 3, Titel: 'FaceWash', Preis: 120,
_id: ObjectID ("63C4EEC7AC8011ECC27D7A43"), ID: 4, Titel: 'Soap', Preis: 65,
_id: ObjectID ("63C4EEC7AC8011ECC27D7A44"), ID: 5, Titel: 'Shampo', Preis: 78
]

Beispiel 1: MongoDB $ min Operator

Im ersten Beispiel dieses Artikels werden wir die Verwendung des „Min“ -Preibers mit Hilfe einfacher MongoDB -Illustrationen diskutieren. Der folgende Befehl verwendet die MongoDB -Aggregat -Funktion, um die Dokumente in der Sammlung "Order" nach dem Feld "Titel" zu gruppieren. Dann berechnet es den minimalen „Preis“ innerhalb jeder Gruppe. Das erste Argument, das an die Gesamtfunktion übergeben wird. In diesem Fall gibt es nur eine Pipeline -Phase, in der der $ Group -Operator die Dokumente nach dem Feld "Titel" gruppiert. Der Betreiber berechnet auch den Mindestpreis innerhalb jeder Gruppe und weist ihn dem Feld "Minprice" zu.

Die resultierende Ausgabe ist ein Array von Objekten, wobei jedes Objekt eine Gruppe von Dokumenten mit demselben Feld "Titel" darstellt. Die Ausgabe zeigt, dass es drei Gruppen von Dokumenten mit verschiedenen "Titel" -Feldern gibt - "Seife", "Shampoo" und "FaceWash". Der Mindestpreis für jede Gruppe beträgt 44, 78 bzw. 120.

Test> db.Befehl.Aggregate ([$ Group: _id: "$ title", minprice: $ min: "$ price"])
[
_id: 'SOAP', Minprice: 44,
_id: 'shampo', minprice: 78,
_id: 'faceWash', Minprice: 120
]

Beispiel 2: MongoDB $ max Operator

Hier sind einige Beispiele zum Diskussion und Verwenden des „Max“ -Operators in MongoDB. Der beigefügte Befehl verwendet die MongoDB -Aggregat -Funktion, um die Bestellsammlung nach dem Feld "Titel" zu gruppieren. Innerhalb der Gruppe werden zwei neue Felder erstellt: "Preiswithtax" und "Maxprice". Das Feld „Preiswithtax“ verwendet den $ max -Operator, um den Maximalwert des Ergebniss des $ add -Operators zu ermitteln. Der $ add -Betreiber fügt das Feld „Preis“ für jedes Dokument in der Gruppe 10 hinzu. Dies bedeutet, dass das Feld „Preiswithtax“ für jede Gruppe von Dokumenten den höchsten "Preis" -Feldwert plus 10 hat, mit demselben "Titel".

Das Feld „Maxprice“ verwendet den $ max -Operator, um den Maximalwert des Felds „Preis“ für jede Dokumentegruppe mit demselben "Titel" zu finden. Die Ausgabe des Befehls ist ein Array von Dokumenten, die für jede Gruppe von Dokumenten die Felder „Titel“, „Preiswithtax“ und „Maxprice“ -Felder in der Bestellsammlung anzeigen. Die Dokumente werden vom Feld "Titel" bestellt. Das erste Dokument in der Ausgabe zeigt beispielsweise, dass der „Titel“ „Shampo“ ist, der „Preiswithtax“ 104 (der höchste "Preis" -Feldwert plus 10 für alle Dokumente mit dem "Titel" von "Shampo"). und der „Maxprice“ ist 94 (der höchste "Preis" -Feldwert für alle Dokumente mit dem "Titel" von "Shampo").

Test> db.Befehl.Aggregate ([$ Group: _id: "$ title", pricewithtax: $ max: $ add: ["$ price", 10], maxprice: $ max: "$ price"] )
[
_id: 'shampo', pricewithtax: 104, maxprice: 94,
_id: 'faceWash', Preiswithtax: 130, MaxPrice: 120,
_id: 'SOAP', PREISWITHTAX: 75, Maxprice: 65
]

Beispiel 3: MongoDB $ AVG Operator

In unserer letzten Abbildung dieses Handbuchs behandeln wir den MongoDB „AVG“ -Portierer, um den Durchschnittswert aus einem bestimmten Sammelfeld herauszufinden. Die MongoDB -Aggregat -Funktion wird verwendet, um die Dokumente in der Kollektion "Order" nach ihrem Feld "Titel" zu gruppieren. Innerhalb jeder Gruppe berechnet es den durchschnittlichen „Preis“ -Warwert und schafft ein neues Feld namens „Avgprice“, um diesen Wert zu speichern. Das Ergebnis dieses Befehls ist ein Array von Objekten, wobei jedes Objekt eine Gruppe von Dokumenten mit demselben Titel "Titel" darstellt. Das Objekt enthält den Wert "Titel" als "_id" -Feld und den berechneten durchschnittlichen "Preis" als "avgprice" -Feld.

In diesem Fall gibt es drei Gruppen: "Seife", "Shampo" und "FaceWash". Der Durchschnittspreis für die „Seifen“ -Gruppe beträgt 54.5. Der Durchschnittspreis für die „Shampo“ -Gruppe beträgt 86. Und der Durchschnittspreis für die „FaceWash“ -Gruppe beträgt 120 wie folgt:

Test> db.Befehl.Aggregate ([$ Group: _id: "$ title", avgprice: $ avg: "$ price"])
[
_id: 'SOAP', AVGPRICE: 54.5,
_id: 'shampo', avgprice: 86,
_id: 'faceWash', avgprice: 120
]

Abschluss

Die Einführung unseres Artikels erläutert die Verwendungen und Unterschiede der drei sehr häufigen und am häufigsten verwendeten Betreiber in MongoDB - den Operatoren von Min, Max und AVG. Indem wir alle mit den Beispielen ausgehen. Die erste Abbildung erklärt den Min -Bediener, die zweite Abbildung, die „max“, während die dritte Abbildung die Verwendung von „AVG“ -Beufer erläutert. Wenn Sie eine Sammlung von Dokumenten haben, die einige numerische Werte darstellen, können Sie die Operatoren von Min, Max und AVG ausprobieren, um die niedrigsten, höchsten und Durchschnittswerte zu finden.