Есть ли способ удалить все дочерние элементы родительского элемента в Mongoose, аналогично использованию внешних ключей MySQL?
Например, в MySQL я бы назначил внешний ключ и настроил его на каскад при удалении. Таким образом, если бы я должен был удалить клиента, все приложения и связанные пользователи также были бы удалены.
С верхнего уровня:
- Удалить клиента
- Удалить лотереи
- Удалить материалы
В лотереях и представлениях есть поле для client_id. Представления имеют поле для sweepstakes_id и client_id.
Сейчас я использую следующий код, и я чувствую, что должен быть лучший способ.
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});
});