将 Mongoose 文档中的默认日期设置为 now + [一些增量]

Posted

技术标签:

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

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

date:  type: Date, default: Date.now 

【问题讨论】:

【参考方案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,你知道为什么会这样吗,这是某种错误吗?跨度>

以上是关于将 Mongoose 文档中的默认日期设置为 now + [一些增量]的主要内容,如果未能解决你的问题,请参考以下文章

Mongoose 日期字段 - 将默认设置为 date.now + N 天

Mongoose 日期字段 - 将默认设置为 date.now + N 天

访问 mongoose 父文档以获取子文档中的默认值

Mongoose 将默认设置为空对象

Mongoose 将默认设置为空对象

将 select: false 设置为 mongoose 的子文档数组