【问题标题】:Set default date in Mongoose document to now + [some increment]将 Mongoose 文档中的默认日期设置为 now + [一些增量]
【发布时间】:2015-08-12 00:27:51
【问题描述】:

正在考虑将文档的默认时间戳设置为现在 + 1 分钟/小时/天。我将如何修改它来做到这一点:

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

【问题讨论】:

    标签: mongodb mongoose


    【解决方案1】:

    您可以使用函数定义 default

    var minuteFromNow = function(){
        var timeObject = new Date();
        timeObject.setTime(timeObject.getTime() + 1000 * 60);
        return timeObject;
    };
    
    new Schema({
        date: { type: Date, default: minuteFromNow }
    })
    

    -- 编辑--

    您还可以使用 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');} }
    })
    

    【讨论】:

    • 当我在做default: hourFromNow 时,我的 IDE 是 Webstorm 正在黑字 default,你知道为什么会这样吗,这是某种错误吗?跨度>
    猜你喜欢
    • 2011-08-14
    • 2015-07-06
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    相关资源
    最近更新 更多