Saya akan mengatakan ini adalah cara untuk pergi. sebelum middleware sangat sesuai dengan kebutuhan ini, dan saya tidak tahu cara lain. Sebenarnya inilah yang saya lakukan di semua skema saya.
Yang perlu Anda ketahui adalah perbedaan antara dokumen dan kueri middleware.Dokumen middleware dieksekusi untuk init , validate , save dan remove operasi. Di sana, this mengacu pada dokumen:
schema.pre('save', function(next) {
this.increment();
return next();
});
Kueri middleware dieksekusi untuk count , find , findOne , findOneAndRemove , findOneAndUpdate dan update operasi. Di sana, this mengacu pada objek kueri. Memperbarui bidang versi untuk operasi tersebut akan terlihat seperti ini:
schema.pre('update', function( next ) {
this.update({}, { $inc: { __v: 1 } }, next );
});
Sumber:dokumentasi luwak .