안녕하세요

MongoDB - 회원기능 게시물 작성자만 삭제하기 본문

스터디/코딩애플

MongoDB - 회원기능 게시물 작성자만 삭제하기

sakuraop 2023. 1. 6. 21:38

1. 게시물을 작성한 사람이 누구라는 표시를 남깁니다.

app.post("/add", (요청, 응답) => {
   응답.send(`/add로 POST 전송 성공했다.`);
   db.collection("counter").findOne({ name: "게시물수" }, (에러, 결과) => {
    const 총게시물갯수 = 결과.totalPost;
    const 저장할데이터 = { _id: 총게시물갯수, 작성자: 요청.user._id, 제목: 요청.body.title, 날짜: 요청.body.date };
    db.collection("post").insertOne(저장할데이터, (에러, 결과) => {
      db.collection("counter").updateOne({ name: "게시물수" }, { $inc: { totalPost: 1 } }, (에러, 결과) => {});
    });
  });
});
=> 고유한 id를 남기면 좋겠죠

 

 

 

2. 삭제할 데이터가 존재하면 삭제하고, 아니면 삭제하지 않습니다.

삭제할 사람의 id와 일치하는지 검사를 하는 것이 아니라,

delete 기능에서 삭제할 데이터에 { 작성자: 요청.user._id } 를 추가하여

선택한 게시글( _id: 요청.body._id )과 { 작성자: 요청.user._id } 를 데이터에서 찾고, 찾은 것이 있으면 삭제합니다.

app.delete("/delete", (요청, 응답) => {
  요청.body._id = parseInt(요청.body._id);
  const 삭제할데이터 = { _id: 요청.body._id, 작성자: 요청.user._id };

  db.collection("post").deleteOne(삭제할데이터, (에러, 결과) => {
    if (결과) return console.log(결과.deleteCount, "결과");
    응답.status(200).send({ message: "성공했습니다." });
  });
});

=> 삭제 결과를 출력해보면

    if (결과) return console.log(결과.deleteCount, "결과");

deleteCount: 0(삭제한 것이 없음) 또는

deleteCount: 1(삭제 한개 함)

이 출력됩니다.