我正在试着写一个mongo聚合,它返回在过go 6个月内发送邮箱的所有记录.emailSentDate
字段以DD-MM-YYYY
格式存储(令人讨厌).
我一直在看一个类似问题的this answer分,但我不能让它起作用.有谁能帮我指出正确的方向吗?
到目前为止,我所拥有的是:
Mongo Data个 数据以这种格式存储.很明显,我忽略了更多的字段,因为它们不相关.
{
"admin": {
"emailSentDate": "11-06-2023"
},
"data": {
// More data here
}
}
My code so far个
const now = new Date();
const sixMonthsAgoDate = now.setMonth(now.getMonth() - 6);
const data = await MyModel.aggregate(
[
{
$addFields: {
"admin.emailSentDate" : {$dateFromString: {dateString: "$admin.emailSentDate", format: "%d-%m-%Y"}}
}
},
{
$match: {"admin.emailSentDate": {$gte: sixMonthsAgoDate} }
}
]
)
我没有拿回任何数据,只有一个空array.有没有人看到我做错了什么?
编辑:我使用的是Mongo版本4.13.0,不能像其中一个答案中建议的那样使用$dateSubtract
.
谢谢