Como calcular uma média ponderada no mongoDB usando a estrutura de agregação?

Preciso calcular a média ponderada em um conjunto de documentos. Cada documento contém um peso e um valor em um campo separado. Aqui está um exemplo: Tenho 2 documentos a seguir representando uma transação de vendas.

{
    quantity : 3,
    price : 2
}

{
    quantity : 9,
    price : 6
}

Quero encontrar o preço médio para ambas as transações. Essa é uma média ponderada em que peso é a quantidade e valor é o preço. Isso pode ser calculado por

AveragePrice = (3 * 2 + 9 * 6 ) / (3 + 9).

Como executo esse cálculo usando a estrutura de agregação?

questionAnswers(1)

yourAnswerToTheQuestion