我正在使用node.js和mongoose。
我需要每个mongoose文档中的数值每24小时增加25,000。
有没有比以下更好的方式:
thing.lastUpdated = new Date();
和
if(/* check how many days(if any) since lase update */> 0){
for(var i = 0;i<days;i++){
//update value
}
}
答案 0 :(得分:3)
您可以使用node-cron来安排增量作业
答案 1 :(得分:1)
根据您的使用案例,您可以根据带有virtual的创建日期进行计算:
var ThingSchema = new Schema({
created: { type: Date, default: Date.now }
});
ThingSchema.virtual('numerical').get(function () {
if (!this.created) return 0;
var delta = (Date.now() - this.created) || 0;
return 25000 * Math.floor(delta / 86400000);
});
// `created` 2 days ago
new Thing({ created: Date.now() - 172800000 }).save(function (thing) {
console.log(thing.numerical);
});