MongoDB - 聚合总和

Mic*_*ael 4 mongodb aggregation-framework

我正在尝试计算在数据库中跟踪的总金额.每个订单文档都包含一个字段"total_price"

我试图使用以下代码:

db.orders.aggregate({
    $group: {
        _id: null,
        total: {$sum: "$total_price"}
    }
})
Run Code Online (Sandbox Code Playgroud)

不幸的是,我得到的唯一输出是: { "result" : [ { "_id" : null, "total" : 0 } ], "ok" : 1 }

但是为了验证实际上存储了数值数据,而不是总计:db.orders.find()[0].total_price这导致了8.99

任何帮助将不胜感激.我使用MongoDB的经验很少.我此时只介绍了基础知识.

先感谢您.

Der*_*ick 7

$sum仅适用于整数,长整数和浮点数.现在,没有运算符可以将字符串解析为数字,尽管这非常有用.您可以自己执行此操作,如Mongo中所述转换存储为字符串但速度较慢的所有数字字段.

我建议你确保你的应用程序将数字存储为int/long/float,并编写一个脚本来迭代所有文档并更新值.我还建议您在https://jira.mongodb.org/browse/SERVER添加功能请求,以添加将字符串转换为数字的运算符.