sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur beräknar jag ett vägt medelvärde i mongoDB med aggregeringsramverk?

För att göra det bör du först beräkna täljaren (vägd summa) och nämnaren (summan av vikter) för det resulterande förhållandet. Efter det behöver du bara dela den ena efter den andra:

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

För mer information se dokumentation för aggregation pipeline .




  1. Indexering på flera fält i mongoDB

  2. Vilka kan fördelarna och nackdelarna med Embedded Arrays VS platta dokument i mongodb?

  3. Mongo DB - export i JSON utökat läge

  4. Laravel Caching med Redis är väldigt långsam