基于其他字段的Mongoose验证

Mongoose Validation Based on Other Fields

考虑以下用于在 Mongoose 中保存时间间隔的模式:

let dateIntervalSchema = new mongoose.Schema({
  begin: { type: Date, required: true  },
  end: { type: Date, required: true }
})

如何使用 Mongoose Validation 确保 end 始终大于或等于 begin

我不知道 Mongoose 是否为此内置了验证器,但是可以使用像下面这样的小东西。

startdate: {
    type: Date,
    required: true,
    // default: Date.now
},
enddate: {
    type: Date,
    validate: [
        function (value) {
            return this.startdate <= value;
        }
    ]
},