当mongodb中的日期过期时,是否可以更新文档?

时间:2019-02-15 02:18:29

标签: node.js angularjs 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) {});

1 个答案:

答案 0 :(得分:1)

在每天的午夜运行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上完成,这取决于您需要更新的文档大小。