Du er på rette vej til at bruge 'remove'
middleware til dette. I middleware-funktionen, this
er gruppeforekomsten, der fjernes, og du kan få adgang til de andre modeller via dens model
metode. Så du kan gøre noget som:
GroupSchema.pre('remove', function(next){
this.model('User').update(
{_id: {$in: this.users}},
{$pull: {groups: this._id}},
{multi: true},
next
);
});
Eller hvis du ønsker at støtte tilfælde, hvor users
feltet i din gruppeforekomst er muligvis ikke komplet, du kan gøre:
GroupSchema.pre('remove', function(next){
this.model('User').update(
{groups: this._id},
{$pull: {groups: this._id}},
{multi: true},
next
);
});
Men som WiredPrairie bemærker, for denne mulighed vil du have et indeks på groups
for god præstation.