gpt4 book ai didi

mongodb - 如何使用聚合框架计算 mongoDB 中的加权平均值?

转载 作者:行者123 更新时间:2023-12-05 08:17:34 34 4
gpt4 key购买 nike

我需要计算一组文档的加权平均值。每个文档在单独的字段中都包含一个权重和一个值。这是一个例子:我有以下 2 个代表销售交易的文件。

{
quantity : 3,
price : 2
}

{
quantity : 9,
price : 6
}

我想找到两笔交易的平均价格。这是一个加权平均值,其中重量是数量,值(value)是价格。这可以通过计算

平均价格 = (3 * 2 + 9 * 6 )/(3 + 9)

如何使用聚合框架执行此计算?

最佳答案

为此,您应该首先计算所得比率的分子(加权总和)和分母(权重总和)。之后你只需要一个一个地除以另一个:

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

有关详细信息,请参阅 Aggregation Pipeline documentation .

关于mongodb - 如何使用聚合框架计算 mongoDB 中的加权平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25436943/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com