Wie berechne ich einen gewichteten Durchschnitt in MongoDB mithilfe des Aggregations-Frameworks?

Ich muss den gewichteten Durchschnitt für eine Reihe von Dokumenten berechnen. Jedes Dokument enthält sowohl ein Gewicht als auch einen Wert in einem separaten Feld. Hier ist ein Beispiel: Ich habe folgende 2 Dokumente, die einen Verkaufsvorgang darstellen.

{
    quantity : 3,
    price : 2
}

{
    quantity : 9,
    price : 6
}

Ich möchte den Durchschnittspreis für beide Transaktionen ermitteln. Dies ist ein gewichteter Durchschnitt, bei dem Gewicht die Menge und Wert der Preis ist. Dies kann mit berechnet werden

AveragePrice = (3 * 2 + 9 * 6 ) / (3 + 9).

Wie führe ich diese Berechnung mit dem Aggregationsframework durch?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage