आप 'remove'
. का उपयोग करने के लिए सही रास्ते पर हैं इसके लिए मिडलवेयर। मिडलवेयर फ़ंक्शन में, this
क्या समूह का उदाहरण हटाया जा रहा है और आप अन्य मॉडलों को इसके model
. के माध्यम से एक्सेस कर सकते हैं तरीका। तो आप कुछ ऐसा कर सकते हैं:
GroupSchema.pre('remove', function(next){
this.model('User').update(
{_id: {$in: this.users}},
{$pull: {groups: this._id}},
{multi: true},
next
);
});
या यदि आप उन मामलों का समर्थन करना चाहते हैं जहां users
हो सकता है कि आपके समूह इंस्टेंस में फ़ील्ड पूरा न हो जो आप कर सकते थे:
GroupSchema.pre('remove', function(next){
this.model('User').update(
{groups: this._id},
{$pull: {groups: this._id}},
{multi: true},
next
);
});
लेकिन जैसा कि WiredPrairie नोट करता है, इस विकल्प के लिए आप groups
पर एक अनुक्रमणिका चाहते हैं अच्छे प्रदर्शन के लिए।