MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie berechne ich einen gewichteten Durchschnitt in MongoDB mit dem Aggregation Framework?

Dazu berechnen Sie zunächst Zähler (gewichtete Summe) und Nenner (Summe der Gewichte) des resultierenden Verhältnisses. Danach müssen Sie nur noch durcheinander dividieren:

db.collection.aggregate({
  $group : {
     _id : 'weighted average', // build any group key ypo need
     numerator: { $sum: { $multiply: [ "$price", "$quantity" ] } },
     denominator: { $sum: "$quantity" }
  }
}, {
  $project: {
    average: { $divide: [ "$numerator", "$denominator" ] }
  }
})

Weitere Informationen finden Sie in der Dokumentation zur Aggregation-Pipeline .