ऐसा करने के लिए आपको पहले परिणामी अनुपात के अंश (भारित योग) और हर (वजन का योग) की गणना करनी चाहिए। उसके बाद आपको केवल एक को दूसरे से विभाजित करना होगा:
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" ] }
}
})
अधिक जानकारी के लिए देखें एग्रीगेशन पाइपलाइन डॉक्यूमेंटेशन ।