🔖 강의 범위: #6.25
이번 시간까지 CRUD 의 Create, Read, Update 기능까지 만들며 배워보았다.
마지막 기능인 Delete 도 만들어보자.
https://mongoosejs.com/docs/api/query.html#query_Query-findOneAndDelete
원리는 간단하다. 지금껏 해왔듯 일정 url 로 이동하면 url에 있는 id 로 해당 비디오를 찾아 지우는 것.
mongoose 의 Model.findByIdAndDelete( ) 기능을 이용하면 된다.
// Template
a(href=`${video.id}/delete`) Delete Video →
// Router
videoRouter.get("/:id([0-9a-f]{24})/delete", deleteVideo );
// Controller
export const deleteVideo = async (req,res) => {
const { id } = req.params;
await Video.findOneAndDelete(id);
return res.redirect("/");
};
끝.
https://www.zerocho.com/category/MongoDB/post/579ecb1fc097d015000404dd
이 둘은 정말 약간의 차이가 있는데 대부분의 상황에서 타당한 이유가 없는 한 delete를 사용하라고 되어 있음.
몽고 db는 롤백이 안되서 remove를 하면 다시 되돌릴 수 없기에 remove보다 delete를 사용하라고 권장하는듯.