var post = mongoose.Schema({
...
_createdOn: Date
});
我希望在文档创建时允许设置_createdOn
字段,但不允许在将来的更新中更改它。在Mongoose中如何实现这个功能?
_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();
});
查看此答案:https://dev59.com/0a_la4cB1Zd3GeqPvZzs#63917295
您可以将该字段设置为不可变。
var post = mongoose.Schema({
...
_createdOn: { type: Date, immutable: true }
});