我想创建一个视图和聚合,它使用currentdate应用一个日期过滤器。在下面的示例中,我使用当前日期作为字符串,运行正常,但我需要保持这些日期自动更新。
{
$and: [{
'promotionRange.start': {$lte: ISODate('2019-11-12')}
},
{
"promotionRange.end": {"$gte": ISODate('2019-11-12')}
}
]
}我需要像下面这样的代码
{
$and: [{
'promotionRange.start': {$lte: $currentDate}
},
{
"promotionRange.end": {"$gte": $currentDate}
}
]
}这不起作用。并且new Date()也不起作用。
在聚合查询中使用当前日期有什么窍门吗?
发布于 2019-11-13 02:17:42
我不认为在start和end日期中使用相同的日期是正确的,如果您想从今天的开始过滤到当前日期/时间,您可以使用new Date().toISOString().slice(0,10)作为字符串检索当前日期的日期部分,对于start日期使用ISODate,对于end日期使用不带参数的ISODate:
const startDate = new Date().toISOString().slice(0,10); // "2019-11-13"
...
{
$and: [{
'promotionRange.start': {$lte: ISODate(startDate)} // 2019-11-13T00:00:00Z
},
{
'promotionRange.end': {$gte: ISODate()}
}
]
}https://stackoverflow.com/questions/58824291
复制相似问题