Este es uno de los principales casos de uso de 'remove'
de Mongoose software intermedio.
clientSchema.pre('remove', function(next) {
// 'this' is the client being removed. Provide callbacks here if you want
// to be notified of the calls' result.
Sweepstakes.remove({client_id: this._id}).exec();
Submission.remove({client_id: this._id}).exec();
next();
});
De esta forma, cuando llamas a client.remove()
este middleware se invoca automáticamente para limpiar las dependencias.