Set the default date in Mongoose document so that now + [some increment]

Looking at setting the default timestamp for the document at the moment + 1 minute / hour / day. How can I change this to do this:

date: { type: Date, default: Date.now }

      

+3


source to share


1 answer


You can define default with a function:

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

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

      




- CHANGE -

You can also use the momentjs library which has some fantastic methods on the date object, specifically for your use case: 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');} }
})

      

+3


source







All Articles