mongoose:不允许更新特定字段

var post = mongoose.Schema({ ... _createdOn: Date }); 

我想只允许在文档创build时设置_createdOn字段,并且不允许在将来的更新中改变它。 如何在mongoose中完成?

我通过在架构的预保存钩子中设置_createdOn (仅在第一次保存时)来实现这一效果:

 schema.pre('save', function(next) { if (!this._createdOn) { this._createdOn = new Date(); } next(); }); 

…而且不允许其他地方的变化:

 userSchema.pre('validate', function(next) { if (self.isModified('_createdOn')) { self.invalidate('_createdOn'); } });