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.