Untuk melakukannya, Anda harus terlebih dahulu menghitung pembilang (jumlah tertimbang) dan penyebut (jumlah bobot) dari rasio yang dihasilkan. Setelah itu Anda hanya perlu membagi satu sama lain:
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" ] }
}
})
Untuk info lebih lanjut, lihat Dokumentasi Agregasi Pipeline .