Trước hết, bạn không cần gốc đối tượng ở tất cả. Bạn có thể truy cập nó trong pre móc qua this . Thứ hai post hook chỉ thực thi sau tất cả pre hook được thực thi, vì vậy mã của bạn không có ý nghĩa gì cả ( kiểm tra tài liệu mongoose
).
Bạn có thể kiểm tra bằng cách chọn isModified
trong pre của bạn hook và xóa post móc ở tất cả.
OrderSchema.pre('save', function(next) {
if(!this.isModified()){
//not modified
}
next();
});
Cập nhật
Để kiểm tra xem một số thuộc tính có bị sửa đổi hay không, hãy chuyển tên thuộc tính làm tham số cho isModified chức năng:
if (this.isModified("some-property")) {
// do something
}