将Mongoose文档中的默认日期设置为现在+ [某些增量]

ben*_*e89 4 mongoose mongodb

查看将文档的默认时间戳设置为现在+ 1分钟/小时/天.我该如何修改它来这样做:

date: { type: Date, default: Date.now }
Run Code Online (Sandbox Code Playgroud)

chr*_*dam 5

您可以使用函数定义默认值:

var minuteFromNow = function(){
    var timeObject = new Date();
    timeObject.setTime(timeObject.getTime() + 1000 * 60);
    return timeObject;
};

new Schema({
    date: { type: Date, default: minuteFromNow }
})
Run Code Online (Sandbox Code Playgroud)

- 编辑 -

您还可以使用在日期对象上有一些奇妙方法的momentjs库,特别是add()用例的函数:

var moment = require('moment');
var hourFromNow = function(){
    return moment().add(1, 'hour');
};

new Schema({
    date: { type: Date, default: hourFromNow }
})


/* OR */
new Schema({
    date: { type: Date, default: function(){return moment().add(1, 'hour');} }
})
Run Code Online (Sandbox Code Playgroud)