sql >> Database >  >> NoSQL >> MongoDB

Hoe bereken ik een gewogen gemiddelde in mongoDB met behulp van een aggregatieraamwerk?

Om dit te doen, moet u eerst de teller (gewogen som) en noemer (som van gewichten) van de resulterende verhouding berekenen. Daarna hoef je alleen nog maar de een door de ander te delen:

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

Zie voor meer informatie Aggregation Pipeline-documentatie .




  1. Mongodb-verbindingsfout hoewel docker in springboot

  2. gebruik .where() Query met .update() via mangoest?

  3. MongoDB:WriteResult.getN() retourneert altijd 0?

  4. Spring-data-mongodb maakt verbinding met meerdere databases in één Mongo-instantie