【发布时间】:2013-08-09 01:16:02
【问题描述】:
我正在尝试计算在我们的数据库中进行跟踪所花费的总金额。每个订单文档都包含一个字段“total_price”
我正在尝试使用以下代码:
db.orders.aggregate({
$group: {
_id: null,
total: {$sum: "$total_price"}
}
})
不幸的是,我得到的唯一输出是:{ "result" : [ { "_id" : null, "total" : 0 } ], "ok" : 1 }
但要验证实际存储了数字数据,只是没有汇总:db.orders.find()[0].total_price 这导致8.99
任何帮助将不胜感激。我使用 MongoDB 的经验很少。目前我只介绍了基础知识。
提前谢谢你。
【问题讨论】:
-
经过更多测试,似乎整数确实有效,但浮点数无效。这是对 Mongo 聚合函数的限制吗?如果有,有什么替代品吗?
-
浮点确实可以工作;你确定你的集合中的值真的是浮点数而不是字符串吗?如果它们是字符串,您确实会看到零结果。
-
@drmirror 我刚刚发现这一点,感谢您的提醒,它们都存储为字符串。有什么方法可以在聚合查询中快速将它们转换为浮点数?
标签: mongodb aggregation-framework