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.
$ Median
Neu ab Version 8.0.1.
Der $median Operator in Amazon DocumentDB berechnet den Medianwert numerischer Daten. Als Akkumulator berechnet er in der Phase einer Aggregationspipeline den Median der numerischen Werte aller Dokumente innerhalb einer Gruppe. $group Als Ausdruck berechnet er den Median einer Reihe von Zahlen.
Parameter
-
input: Ein Ausdruck, der in einen numerischen Wert oder ein Array numerischer Werte aufgelöst wird. -
method: Eine Zeichenfolge, die die Berechnungsmethode angibt. Derzeit"approximate"wird nur unterstützt, wobei der t-digest-Algorithmus verwendet wird.
Behavior
Die "approximate" Methode verwendet den T-Digest-Algorithmus, um einen ungefähren Median zu berechnen. Das Ergebnis ist ein vorhandener Wert aus dem Datensatz und nicht eine Interpolation zwischen Werten. Die Genauigkeit verbessert sich, wenn die Anzahl der Datenpunkte zunimmt.
Beispiel (MongoDB Shell)
Das folgende Beispiel zeigt, wie der $median Operator verwendet wird, um den Medianwert des Testergebnisses pro Klasse zu berechnen.
Erstellen Sie Beispieldokumente
db.students.insertMany([ { class: "A", score: 72 }, { class: "A", score: 85 }, { class: "A", score: 90 }, { class: "A", score: 68 }, { class: "A", score: 95 }, { class: "B", score: 80 }, { class: "B", score: 75 }, { class: "B", score: 92 }, { class: "B", score: 88 }, { class: "B", score: 70 } ]);
Beispiel für eine Abfrage
db.students.aggregate([ { $group: { _id: "$class", medianScore: { $median: { input: "$score", method: "approximate" } } }} ]);
Ausgabe
[
{ "_id": "A", "medianScore": 85 },
{ "_id": "B", "medianScore": 80 }
]
Beispiel für die Verwendung von Ausdrücken (MongoDB Shell)
Der $median Operator kann auch als Ausdruck innerhalb einer $project Stufe verwendet werden, um den Median eines Array-Feldes zu berechnen.
Erstellen Sie Beispieldokumente
db.surveys.insertMany([ { _id: 1, ratings: [3, 5, 7, 9, 2] }, { _id: 2, ratings: [10, 20, 30, 40, 50] }, { _id: 3, ratings: [1, 1, 2, 3, 5] } ]);
Beispiel für eine Abfrage
db.surveys.aggregate([ { $project: { medianRating: { $median: { input: "$ratings", method: "approximate" } } }} ]);
Ausgabe
[
{ "_id": 1, "medianRating": 5 },
{ "_id": 2, "medianRating": 30 },
{ "_id": 3, "medianRating": 2 }
]
Codebeispiele
Um ein Codebeispiel für die Verwendung des $median Operators anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten. Die folgenden Beispiele zeigen sowohl die Verwendung von Akkumulatoren (in$group) als auch die Verwendung von Ausdrücken (in$project):