mongodb 聚合函数求平均值及时差处理

        最近因为公司需要做一些小时平均和每日平均的统计,于是去找了下mongodb的系统函数。通过avg和聚合查询实现了结果,但是发现统计的时候mongodb函数$dateToString: { format: "%Y-%m-%d %H", date: "$beginTime" }转化后也还是格林治时间,统计结果跟北京时间差了8小时。于是找了很多资料通过date: { $add: ["$beginTime", 28800000] }函数解决了这个问题,下面分享跟大家,也给自己记录一下以免后忘。

db.user.aggregate(
				[{
					'$match': {
						macAddress: macAddress,
						beginTime: {
							$gt: beginTimes,
							$lte: endTimes
						}
					}
				}, {
					'$project': {
						'SO2': 1, 'NO2': 1, 'PM10': 1, 'PM25': 1, 'speed': 1, 'direct': 1, 'temp': 1, 'humidity': 1,
						'beginTime': { $dateToString: { format: "%Y-%m-%d %H", date: { $add: ["$beginTime", 28800000] } } }//8*60*60*1000
					}
				},
				{
					'$group': {
						'_id': "$beginTime",
						'SO2': { '$avg': '
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值