本文介绍了$Week函数和聚合中的周的第一天的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用$project
运算符从日期中提取周部分,然后在聚合管道中按周分组:
{ $project: {
year: { $year: [ "$datetime" ] },
week: { $week: [ "$datetime" ] },
....
}
},
....
{ $group: {
_id: {
year: "$year",
week: "$week",
},
.....
}
}
但我使用的$week
运算符始终将星期日计为一周的第一天,而我们使用星期一作为我们所在位置的一周的第一天。因此,按周分组的结果对我来说总是不正确的。
existing request in mongo tracking system似乎已有一年多未解决(是否真的有这么少需要的选项?)。
欢迎任何可能的选项。也许可以在javascript中创建一些自定义函数,然后在某个地方添加/替换它?
推荐答案
MongoDB终于在3.4中添加了$isoWeek
和$isoWeekYear
,本周将从星期一开始。
详细信息:https://docs.mongodb.com/manual/reference/operator/aggregation/isoWeek/
这篇关于$Week函数和聚合中的周的第一天的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!