MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment calculer une moyenne pondérée dans mongoDB en utilisant le cadre d'agrégation ?

Pour ce faire, vous devez d'abord calculer le numérateur (somme pondérée) et le dénominateur (somme des poids) du ratio résultant. Après cela, vous n'aurez plus qu'à diviser l'un par l'autre :

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" ] }
  }
})

Pour plus d'informations, consultez la documentation sur le pipeline d'agrégation .