For at gøre det skal du først beregne tæller (vægtet sum) og nævner (sum af vægte) af det resulterende forhold. Derefter behøver du kun at dividere den ene med den anden:
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" ] }
}
})
For mere information se Aggregation Pipeline dokumentation .