Cascade style delete en Mongoose

¿Hay una manera de eliminar todos los hijos de un padre en Mongoose, de forma similar al uso de las claves externas de MySQL?

Por ejemplo, en MySQL, asignaría una clave externa y la configuraría en cascada al eliminar. Por lo tanto, si tuviera que eliminar un cliente, todas las aplicaciones y los usuarios asociados también se eliminarían.

Desde un nivel superior:

Eliminar clienteEliminar sorteosEliminar envíos

Los sorteos y las presentaciones tienen un campo para client_id. Las presentaciones tienen un campo para sweepstakes_id y client_id.

En este momento, estoy usando el siguiente código y siento que tiene que haber una mejor manera.

Client.findById(req.params.client_id, function(err, client) {

    if (err)
        return next(new restify.InternalError(err));
    else if (!client)
        return next(new restify.ResourceNotFoundError('The resource you requested could not be found.'));

    // find and remove all associated sweepstakes
    Sweepstakes.find({client_id: client._id}).remove();

    // find and remove all submissions
    Submission.find({client_id: client._id}).remove();

    client.remove();

    res.send({id: req.params.client_id});

});

Respuestas a la pregunta(3)

Su respuesta a la pregunta