Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
$avg
Der $avg Aggregationsoperator in Amazon DocumentDB berechnet den Durchschnittswert des angegebenen Ausdrucks in den Dokumenten, die in die Bühne eingegeben werden. Dieser Operator ist nützlich, um den Durchschnitt eines numerischen Felds oder Ausdrucks in einer Reihe von Dokumenten zu berechnen.
Parameter
-
expression: Der Ausdruck, der zur Berechnung des Durchschnitts verwendet werden soll. Dies kann ein Feldpfad (z. B."$field") oder ein Ausdruck (z. B.{ $multiply: ["$field1", "$field2"] }) sein.
Beispiel (MongoDB Shell)
Das folgende Beispiel zeigt, wie der $avg Operator verwendet wird, um die durchschnittliche Punktzahl für eine Reihe von Studentendokumenten zu berechnen.
Erstellen Sie Beispieldokumente
db.students.insertMany([ { name: "John", score: 85 }, { name: "Jane", score: 92 }, { name: "Bob", score: 78 }, { name: "Alice", score: 90 } ]);
Beispiel für eine Abfrage
db.students.aggregate([ { $group: { _id: null, avgScore: { $avg: "$score" } }} ]);
Ausgabe
[
{
"_id": null,
"avgScore": 86.25
}
]
Beispiel für die Verwendung von Fensteroperatoren (MongoDB Shell)
Neu ab Version 8.0.2.
Der $avg Operator kann auch als Fensterbediener auf der $setWindowFields Bühne verwendet werden. In diesem Zusammenhang gibt es den Durchschnitt des angegebenen Ausdrucks für die Dokumente in jedem Fenster zurück. Sie geben den Operator unter dem output Feld an und definieren optional die Fenstergrenzen mit einem window Dokument.
Erstellen Sie Beispieldokumente
db.readings.insertMany([ { _id: 1, city: "Denver", day: 1, temp: 70 }, { _id: 2, city: "Denver", day: 2, temp: 80 }, { _id: 3, city: "Seattle", day: 1, temp: 60 }, { _id: 4, city: "Seattle", day: 2, temp: 64 }, { _id: 5, city: "Seattle", day: 3, temp: 68 } ]);
Beispiel für eine Abfrage
Das folgende Beispiel partitioniert die Dokumente nachcity, sortiert jede Partition nach day und gibt einen laufenden Durchschnitt temp vom Anfang der Partition bis zum aktuellen Dokument zurück.
db.readings.aggregate([ { $setWindowFields: { partitionBy: "$city", sortBy: { day: 1 }, output: { runningAvg: { $avg: "$temp", window: { documents: ["unbounded", "current"] } } } } } ]);
Ausgabe
[
{ "_id": 1, "city": "Denver", "day": 1, "temp": 70, "runningAvg": 70 },
{ "_id": 2, "city": "Denver", "day": 2, "temp": 80, "runningAvg": 75 },
{ "_id": 3, "city": "Seattle", "day": 1, "temp": 60, "runningAvg": 60 },
{ "_id": 4, "city": "Seattle", "day": 2, "temp": 64, "runningAvg": 62 },
{ "_id": 5, "city": "Seattle", "day": 3, "temp": 68, "runningAvg": 64 }
]
Jedes Dokument wird um den Durchschnitt temp innerhalb seiner Partition bis einschließlich des aktuellen Dokuments erweitert. runningAvg
Codebeispiele
Um ein Codebeispiel für die Verwendung des $avg Operators anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten. Die folgenden Beispiele zeigen sowohl die Verwendung des Akkumulators (in$group) als auch die Verwendung von Fensteroperatoren (in$setWindowFields):