在使用mongodb时需要按照不同的时间粒度来对数据处理 粒度为 日 周 月 在使用时遇见了一些耽误时间的事情 整理一下
具体语法如下
db.collection.aggregate([
{$project:{granularity:{ $dayOfYear: "$yourYate" }}},
{$group: {_id:"$granularity",total:{$sum:1}}}
])
开始的时候我选择了 dayOfYear week month
但是执行的时候发现 week 并不是遵循国人的习惯以周一开始的 以至于出现问题踩了个坑 换用isoWeek 才正常符合预期查询
db.collection.aggregate([
{$project:{granularity:{ $isoWeek: "$yourYate" }}},
{$group: {_id:"$granularity",total:{$sum:1}}}
])
注:大家在使用DayOfWeek WeekYear一定要注意 想从周一开始的 要使用ios前缀的