猫鼬不可设置的属性

时间:2020-06-03 02:11:29

标签: node.js express mongoose

是否可以在架构中包含属性,例如created时间戳,但是禁止用户在创建时设置该值(始终使用默认值)?这是专门针对API的,我希望在架构中具有一个created值,但希望始终使用当前时间戳覆盖请求主体的值。示例:

const schema = new mongoose.Schema({
  created: {
    type: Date,
    default: Date.now
  }
});

在这种模式下,我如何才能做到,即使在初始化过程中传递了值,也被Date.now覆盖了?

1 个答案:

答案 0 :(得分:0)

听起来您想使用“ createdAt”时间戳,如果是这样,则可以使用不可变属性:

const Model = mongoose.model('Test', new Schema({
  name: String,
  createdAt: {
    type: Date,
    immutable: true // Make `createdAt` immutable
  }
}, { timestamps: true }));