mongodb中的数据需逐日统计每天的次数或金额,用dateToString转换

db.getCollection('').aggregate([
{
    $match: {
        "dateTime":{$gt: ISODate("2019-10-01T00:00:00Z")}
        }
},
{
    $project: {
        code: "$code",
        time: { $dateToString: { format: "%Y-%m-%d", date: "$dateTime" } }
        }
},
 { 
     $group: {
     _id: 
     {"code":"$code",
       "time":  "$time"}, 
     count: { $sum: 1 }
     }
},
{ 
        $project: { 
            count: 1, 
            _id: 0,
            "code":"$_id.code",
            "time":"$_id.time"
        } 
  }
 

])

SpringData Mongo实现

Aggregation recordAggregation = Aggregation.newAggregation(
                Aggregation.match(Criteria.where("dateTime").gt(getOneMonthBeforeDate()),
                Aggregation.project("code", "dateTime")
                        .and(DateOperators.DateToString.dateOf("dateTime").toString("%Y-%m-%d").withTimezone(DateOperators.Timezone.valueOf("Asia/Shanghai"))).as("DateTime"),
                Aggregation.group("code", "dateTime").count().as("count")
        );
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值