如何在猫鼬模式中引用另一个 属性

How to reference another property in your mongoose schema

如果我的模式中有一个 属性 依赖于另一个模式(比如它的最小值),如何在我的模式中定义它?

我的架构中有一个 endDate 和一个 actualEndDate 属性,第二个总是大于或等于第一个,我如何将它放入我的架构中

const schema = new mongoose.Schema({
  endDate: {
    type: Date,
    min: new Date(),
    required: true
  },
  actualEndDate: {
    type: Date,
    min: new Date(),  // I need this to be min: this.endDate or something
  }
});

在您 save/update 任何文档之前,您可以添加预保存挂钩,这些挂钩可以检查文档的有效性并根据您的逻辑抛出错误或更新某些值。

https://mongoosejs.com/docs/middleware.html#pre

您可以添加自己的自定义验证。

试试这个:

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