• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

views 카운터를 올리고 싶은데 어디서 올리면 될까요?

21.10.20 22:32 작성 조회수 129

0

기능 중에 모델에는 views가 있는데 

기능 구현에는 views 올려주는게 없어서 일단 구현하려고 하는데

 

Product.find({ _id: { $in: productIds } })
        .populate('writer')
        .exec((err, product) => {
            if (err) return res.status(400).send(err)
            product.views++;
            product.save();
            return res.status(200).send(product)
      })

 

이런식으로 서버단에서 올리려고 하면  save 함수도 에러가 나고

카운터도 올라가지 않아서요 ㅠㅠ

답변 1

답변을 작성해보세요.

1

안녕하세요 ! 


if (type === "single") {
Product.findOneAndUpdate({ _id: productIds }, { $inc: { "views": 1 } }, (err, doc) => {
if (err) return res.json({ success: false, err });
});
}

 

이런식으로 해주시면 됩니다 !!! 
수고하세요 ㅎㅎㅎ

감사합니다. 하나 더 하는 식으로 했는데 이런식으로 조건을 조정해줘도 되는군요.

여기에 sleep 함수나 cookieparser를 이용해 조회수 중복처리도 해보도록 하겠습니다. 감사합니다.