MongoDB 聚合 $dateToString 时差问题解决

存储在MongoDB中的时间是标准时间UTC +0:00,而中国时区是+8.00 由于时差的存在在使用聚合函数$dateToString时发现统计不准问题.

为了重现问题,准备如下数据测试

测试聚合使用$dateToString格式化时间

发现格式化后显示的时间就存在时间差导致的问题,原因是聚合操作默认是根据标准时间UTC来进行计算的.

发现问题官方文档查找到对dateToString操作提供时区操作,实例如下:

执行产生以下错误信息,查询当前数据库版本发现当前数据库版本还不支持timezone参数

db.version(); //查询数据库版本

执行发现当前数据库版本: 3.4.10

3.4版官网文档: https://docs.mongodb.com/v3.4/reference/operator/aggregation/dateToString/index.html

对低版本数据参数不支持时导致时差问题,最终通过$add操作补齐时差,实例如下:

原文地址: http://www.xuexiyuan.cn/article/detail/150.html

你可能感兴趣的:(MongoDB 聚合 $dateToString 时差问题解决)