작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
250
0
강사님은
Like.findByIdAndDelete를 사용하셔서 해당 Like 도큐먼트를 지워주셨습니다.
그런데 이 경우 다수의 사람이 좋아요를 눌렀을 경우
한 사람만이라도 좋아요를 다시 눌러 취소할 경우 조건에 해당하는 도큐먼트 전체가 삭제되는 것이 아닌가요?
아래는 강사님이 작성하신 스키마와 백엔드 로직입니다.
const likeSchema = mongoose.Schema({
userId: {
type: Schema.Types.ObjectId,
ref: 'User'
},
commentId: {
type: Schema.Types.ObjectId,
ref: 'Comment'
},
videoId: {
type: Schema.Types.ObjectId,
ref: 'Video'
}
}, { timestamps: true })
router.post("/unLike", (req, res) => {
let variable = {}
if (req.body.videoId) {
variable = { videoId: req.body.videoId, userId: req.body.userId }
} else {
variable = { commentId: req.body.commentId , userId: req.body.userId }
}
Like.findOneAndDelete(variable)
.exec((err, result) => {
if (err) return res.status(400).json({ success: false, err })
res.status(200).json({ success: true })
})
})
제 생각에는 해당 Like의 _id를 찾아내거나, userId와 commentId가 동시에 일치하도록 조건을 걸어주어야 하는 게 아닌가 싶습니다.
혹시 제가 잘못 알고 있는 부분이라면 지적 부탁드립니다.