MongoDB 总计 7 月一个月内的日常活动总和

编程入门 行业动态 更新时间:2024-10-25 09:25:06
本文介绍了MongoDB 总计 7 月一个月内的日常活动总和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我需要获得 7 月份每天完成的步骤总和.我期待 31 个结果.

I need to get the sum of steps done per day in the month of July. I am expecting 31 results.

这是来自数据库的示例:

Here is a sample from the database:

/* 1 */ { "_id" : ObjectId("5ff0a5878da39cdbf696ffea"), "dateTime" : ISODate("2020-07-03T17:20:00.000Z"), "value" : "14" } /* 2 */ { "_id" : ObjectId("5ff0a5878da39cdbf696ffeb"), "dateTime" : ISODate("2020-07-03T17:43:00.000Z"), "value" : "57" }

价值"步骤就完成了.

推荐答案

如果您想通过 JS 帮助(您需要提供 jsMonth 中的哪一个月,以及哪一年在jsDayCount) :

And here is solution if you want to have the days with 0 count with abit of JS help ( you need to provide which month in jsMonth , and which year in jsDayCount ) :

mongos> db.d.find() { "_id" : ObjectId("5ff62e4484088fbb4acaf035"), "dateTime" : ISODate("2020-07-03T17:20:00Z"), "value" : "14" } { "_id" : ObjectId("5ff62e4484088fbb4acaf036"), "dateTime" : ISODate("2020-07-05T17:20:00Z"), "value" : "14" } { "_id" : ObjectId("5ff62e4484088fbb4acaf037"), "dateTime" : ISODate("2020-07-03T17:20:00Z"), "value" : "50" } { "_id" : ObjectId("5ff62e4484088fbb4acaf038"), "dateTime" : ISODate("2020-08-10T17:20:00Z"), "value" : "100" } mongos> var jsMonth=7;var jsDayCount=new Date(2020, jsMonth , 0).getDate(); mongos> db.d.aggregate([ {$project:{ byDay:{$dayOfMonth:{date:"$dateTime",timezone:"+0200"}},_id:0 , val:{$toInt:"$value"} ,mon: {$month:{date:'$dateTime',timezone:"+0200"}} }} ,{$match:{ mon:jsMonth }} , {$group:{_id:"$byDay" , perDayTotal:{$sum:"$val"}}} , {$sort:{_id:1}} , {$group:{_id:"total" , arr:{$push:{day:"$_id",perDay:"$perDayTotal" }} }} , { $addFields:{ arr:{ $reduce:{ input:{$setDifference:[ {$range:[1,jsDayCount,1]} ,"$arr.day" ] }, initialValue:"$arr",in:{ $concatArrays: ["$$value" ,[{day:"$$this", perDay:0 }] ] } } } } } , {$unwind:"$arr"}, {$project:{_id:0 ,day:"$arr.day" , countPerDay:"$arr.perDay"}} , $sort:{"day":1}} ]) { "day" : 1, "countPerDay" : 0 } { "day" : 2, "countPerDay" : 0 } { "day" : 3, "countPerDay" : 64 } { "day" : 4, "countPerDay" : 0 } { "day" : 5, "countPerDay" : 14 } { "day" : 6, "countPerDay" : 0 } { "day" : 7, "countPerDay" : 0 } { "day" : 8, "countPerDay" : 0 } { "day" : 9, "countPerDay" : 0 } { "day" : 10, "countPerDay" : 0 } { "day" : 11, "countPerDay" : 0 } { "day" : 12, "countPerDay" : 0 } { "day" : 13, "countPerDay" : 0 } { "day" : 14, "countPerDay" : 0 } { "day" : 15, "countPerDay" : 0 } { "day" : 16, "countPerDay" : 0 } { "day" : 17, "countPerDay" : 0 } { "day" : 18, "countPerDay" : 0 } { "day" : 19, "countPerDay" : 0 } { "day" : 20, "countPerDay" : 0 } { "day" : 21, "countPerDay" : 0 } { "day" : 22, "countPerDay" : 0 } { "day" : 23, "countPerDay" : 0 } { "day" : 24, "countPerDay" : 0 } { "day" : 25, "countPerDay" : 0 } { "day" : 26, "countPerDay" : 0 } { "day" : 27, "countPerDay" : 0 } { "day" : 28, "countPerDay" : 0 } { "day" : 29, "countPerDay" : 0 } { "day" : 30, "countPerDay" : 0 } mongos>

更多推荐

MongoDB 总计 7 月一个月内的日常活动总和

本文发布于:2023-11-22 09:46:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1616940.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:总和   一个月内   日常   MongoDB

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!