Tôi muốn nói đây là con đường để đi. trước phần mềm trung gian phù hợp chính xác nhu cầu này, và tôi không biết cách nào khác. Trên thực tế, đây là những gì tôi đang làm trong tất cả các lược đồ của mình.
Tuy nhiên, điều bạn cần lưu ý là sự khác biệt giữa tài liệu và truy vấn phần mềm trung gian. Tài liệu phần mềm trung gian được thực thi cho init , validate , save và remove các hoạt động. Đây, this đề cập đến tài liệu:
schema.pre('save', function(next) {
this.increment();
return next();
});
Truy vấn phần mềm trung gian được thực thi cho count , find , findOne , findOneAndRemove , findOneAndUpdate và update các hoạt động. Đây, this đề cập đến đối tượng truy vấn. Cập nhật trường phiên bản cho các hoạt động như vậy sẽ trông giống như sau:
schema.pre('update', function( next ) {
this.update({}, { $inc: { __v: 1 } }, next );
});
Nguồn: tài liệu mongoose .