मैं कहूंगा कि यह जाने का रास्ता है। पूर्व मिडलवेयर बिल्कुल इस जरूरत को पूरा करता है, और मुझे कोई अन्य तरीका नहीं पता है। वास्तव में मैं अपने सभी स्कीमा में यही कर रहा हूं।
हालांकि आपको जिस चीज के बारे में पता होना चाहिए, वह है दस्तावेज़ . के बीच का अंतर और क्वेरी मिडलवेयर.दस्तावेज़ मिडलवेयर को init
. के लिए क्रियान्वित किया जाता है , validate
, save
और remove
संचालन। वहां, this
दस्तावेज़ को संदर्भित करता है:
schema.pre('save', function(next) {
this.increment();
return next();
});
क्वेरी मिडलवेयर को count
. के लिए क्रियान्वित किया जाता है , find
, find
, findOneAndRemove
, findOneAndUpdate
और update
संचालन। वहां, this
क्वेरी ऑब्जेक्ट को संदर्भित करता है। इस तरह के संचालन के लिए संस्करण फ़ील्ड को अपडेट करना इस तरह दिखेगा:
schema.pre('update', function( next ) {
this.update({}, { $inc: { __v: 1 } }, next );
});
स्रोत:मोंगोज़ दस्तावेज़ीकरण ।