MySQLの外部キーを使用するのと同様に、Mongooseで親のすべての子を削除する方法はありますか?
たとえば、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});
});