var post = mongoose.Schema({
...
_createdOn: Date
});
我希望仅在创建文档时允许设置 _createdOn
字段,并且不允许在未来更新时更改它。在 Mongoose 中是如何实现的?
最佳答案
我通过在模式的预保存钩子(Hook)中设置 _createdOn
实现了这个效果(仅在第一次保存时):
schema.pre('save', function (next) {
if (!this._createdOn) {
this._createdOn = new Date();
}
next();
});
...并禁止从其他任何地方进行更改:
userSchema.pre('validate', function (next) {
if (this.isModified('_createdOn')) {
this.invalidate('_createdOn');
}
next();
});
关于node.js - Mongoose :不允许更新特定字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26342081/