我試圖從今天開始得到下一個星期二(ISO周的第2天)。我從全域變數"$NOW"中得到了當前日期,并通過以下操作得到了ISO周的當前日期。{ $dayOfWeek: "$$NOW" }。但是我想不出有什么方法可以在MongoDB-Aggregation中獲得下一個星期二的日期。
例如,我有一個輸入:
"$NOW"這是 => new Date("2021-09-13T16。 20:00Z") //今天是星期一。
而現在我想得到下一個星期二:
new Date("2021-09-14T16: 20:00Z")//即將到來的星期二。
這很容易,但如果有一個星期的轉變,就會變得有點困難。如果現在的日期是:
"$NOW"這是=> new Date("2021-09-16T16。 20:00Z") //即將到來的星期四將是今天。
下周二將是:
new Date("2021-09-21T16: 20:00Z") //下周二
所以我總是想得到今天之后的下一個星期二。
最后,我想創建一個像這樣的mongo管道:
我想創建一個像這樣的mongo管道。
[{
$addFields: {
"nextTuesday"/span>: new Date(" the date of the next Tuesday" )
}
}]
我將非常高興得到任何幫助!
uj5u.com熱心網友回復:
MongoDB有$dayOfWeek運算子,該運算子回傳1代表星期天,7代表星期六。
在這個范圍內,查找所需的星期的公式是:
(((desired_day 6) - current_day) modulo 7) 1
在MongoDB的聚合語言中,它看起來像:
{$addFields:{
nextTuesday:{
$toDate:{
$add:[
"$$NOW"/span>,
{$multiply:[
86400000,
{$add:[
1,
{$mod:[
{$subtract:[
9,
{$dayOfWeek:"$NOW"}。
]},
7}, 7
]}
]}
]}
]
}
}
}}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/328404.html
標籤:
