如何在mongodb中对十进制字段进行$sum



我正在使用Azure Cosmos MongoDB。给定一些示例数据,我们可以假设amount字段实际上包含Decimal128值,如何在聚合中求和?

{ amount: 1.23 }
{ amount: 4.56 }

当我只是这样做时:

data.aggregate([
{
$group: {
_id: null,
totalAmount: { $sum: "$amount" }
}
}
])

它似乎要么返回0,要么返回一个关于期望一个整数的错误。

您可以尝试使用$toDecimal,求和是正确的,但它带有尾随零。

db.collection.aggregate([
{
$group: {
_id: null,
totalAmount: {
$sum: {
"$toDecimal": "$amount"
}
}
}
}
])

游乐场链接。

最新更新