我有一个日历应用程序,我创建约会,并在5分钟后自动删除,我正在尝试获取距离到期还有1分钟的所有约会并向我的前端发送通知,说这些预约即将到期。
我举了一个例子,但没有得到任何结果:
async function sendNotification(req: Request, res: Response) {
const DATE = new Date();
const NEXT_MINUTE = new Date(DATE.setMinutes(DATE.getMinutes() + 1));
const appointments = await Calendar.aggregate([
{ $match: { expireAt: { $lt: NEXT_MINUTE } } },
]);
console.log("LAST_MINUTE >>", NEXT_MINUTE);
res.status(200).json(appointments);
}
我的问题是如何获得1分钟后到期的预约?
这可能是由于关于Mongoose中聚合的注释。。。
与查询过滤器不同,Mongoose也不强制转换聚合管道。这意味着您有责任确保传递到聚合管道的值具有正确的类型。
传入Date
实例可能有问题。
你似乎实际上并不需要一个聚合。尝试使用普通查询代替
const NEXT_MINUTE = new Date(Date.now() + 60000);
const appointments = await Calendar.find({
expireAt: { $lt: NEXT_MINUTE }
});