我试着从今天开始安排下个星期二( ISO周的第二天)。我通过以下运算符获得了全局var "$$NOW"的当前日期和ISO星期的当前日期:{ $dayOfWeek: "$$NOW" }。但我想不出任何方法来获取MongoDB-Aggregation中下个星期二的日期。
例如,我有以下输入:
"$$NOW" which is => new Date("2021-09-13T16:20:00Z") // Today Monday现在我想要下个星期二:
new Date("2021-09-14T16:20:00Z") // coming Tuesday这很容易,但如果有一个星期的轮班,它就会变得有点困难。如果现在的日期是:
"$$NOW" which is => new Date("2021-09-16T16:20:00Z") // coming Thursday would be Today下个星期二是:
new Date("2021-09-21T16:20:00Z") // Tuesday next week所以我总是想在今天之后的下一个星期二。
最后,我想创建一个mongo管道,如下所示:
[{
$addFields: {
"nextTuesday": new Date(" the date of the next Tuesday ")
}
}]如果有任何帮助,我会非常高兴!
发布于 2021-09-20 10:25:10
MongoDB有一个$dayOfWeek运算符,它返回1表示周日,7表示周六。
在这个范围内,找到一周中想要的日期的公式是:
(((desired_day + 6) - current_day) modulo 7) + 1在MongoDB聚合语言中,如下所示:
{$addFields:{
nextTuesday:{
$toDate:{
$add:[
"$$NOW",
{$multiply:[
86400000,
{$add:[
1,
{$mod:[
{$subtract:[
9,
{$dayOfWeek:"$$NOW"}
]},
7
]}
]}
]}
]
}
}
}}https://stackoverflow.com/questions/69163989
复制相似问题