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

Mongoose date field - Set default to date.now + N days

在猫鼬模式中,例如:

var EventSchema = new Schema({
 title: {
  type: String,
  default: '',
  trim: true,
  required: 'Title cannot be blank'
 },
 description: {
  type: String,
  default: '',
  trim: true
 },
 start: {
  type: Date,
  default: Date.now,
  required: 'Must have start date - default value is the created date'
 },
 end: {
  type: Date,
  default: Date.now + 7 Days, // Date in one week from now
  required: 'Must have end date - default value is the created date + 1 week'
 },
 tasks: [{
  type: Schema.ObjectId,
  ref: 'Task'
 }]
});

在 "end" 字段的行中,默认日期应设置为 +7 天。我可以添加预保存挂钩并将其设置在那里,但想知道是否有办法在默认字段中内联执行此操作。

您可以像这样将转换为毫秒的 7 天添加到当前日期

default: new Date(+new Date() + 7*24*60*60*1000)

甚至像这样

default: +new Date() + 7*24*60*60*1000

更新

请查看下面的@laggingreflex 评论。您需要将函数设置为默认值:

default: () => new Date(+new Date() + 7*24*60*60*1000)
default: () => Date.now() + 7*24*60*60*1000

这就够了