Anda berada di jalur yang benar untuk menggunakan 'remove'
perangkat tengah untuk ini. Dalam fungsi middleware, this
apakah instance grup sedang dihapus dan Anda dapat mengakses model lain melalui model
metode. Jadi, Anda dapat melakukan sesuatu seperti:
GroupSchema.pre('remove', function(next){
this.model('User').update(
{_id: {$in: this.users}},
{$pull: {groups: this._id}},
{multi: true},
next
);
});
Atau jika Anda ingin mendukung kasus di mana users
bidang dalam instance grup Anda mungkin tidak lengkap yang dapat Anda lakukan:
GroupSchema.pre('remove', function(next){
this.model('User').update(
{groups: this._id},
{$pull: {groups: this._id}},
{multi: true},
next
);
});
Tetapi seperti yang dicatat oleh WiredPrairie, untuk opsi ini Anda menginginkan indeks pada groups
untuk kinerja yang baik.