有没有办法在mongodb中过期日期时更新文档?
我已经阅读了一些解决方案,并想知道如果日期在2天后过期,我是否可以更新(不删除)mongodb中的文档。像这样。
date:2019-02-15
status:not expired
2天后将状态更新为expired
。这是我发布文档的代码。
var bloodstock = new Bloodstock();
bloodstock.date = new Date();
bloodstock.status = "not expired";
bloodstock.save(function(err) {});
回答如下:
每天午夜运行cron来比较日期。如果日期存在2天,则更新数据库上的状态。
var CronJob = require('cron').CronJob;
const job = new CronJob('00 00 00 * * *', function () {
if (Date.parse(today_date) > Date.parse(new Date(db_date).getTime() + (2 * 24 * 60 * 60 * 1000))) {
//Update your status
...
}
});
job.start();
注意:可以在MongoDB查询或Javascript上进行日期比较,这取决于您需要更新的文档大小。