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'); } });