Je bent op de goede weg om 'remove'
te gebruiken middleware hiervoor. In de middleware-functie, this
is de groepsinstantie die wordt verwijderd en hebt u toegang tot de andere modellen via het model
methode. U kunt dus iets doen als:
GroupSchema.pre('remove', function(next){
this.model('User').update(
{_id: {$in: this.users}},
{$pull: {groups: this._id}},
{multi: true},
next
);
});
Of als u gevallen wilt ondersteunen waarin de users
veld in uw groepsinstantie mogelijk niet volledig is, kunt u het volgende doen:
GroupSchema.pre('remove', function(next){
this.model('User').update(
{groups: this._id},
{$pull: {groups: this._id}},
{multi: true},
next
);
});
Maar zoals WiredPrairie opmerkt, voor deze optie wil je een index op groups
voor goede prestaties.