Du är på rätt väg att använda 'remove' mellanprogram för detta. I middleware-funktionen, this är gruppinstansen som tas bort och du kan komma åt de andra modellerna via dess model metod. Så du kan göra något som:
GroupSchema.pre('remove', function(next){
this.model('User').update(
{_id: {$in: this.users}},
{$pull: {groups: this._id}},
{multi: true},
next
);
});
Eller om du vill stödja fall där users fältet i din gruppinstans kanske inte är komplett kan du göra:
GroupSchema.pre('remove', function(next){
this.model('User').update(
{groups: this._id},
{$pull: {groups: this._id}},
{multi: true},
next
);
});
Men som WiredPrairie noterar, för detta alternativ vill du ha ett index på groups för bra prestanda.