Node.js + MongoDB 댓글/하위댓글 구현 방법

조회수 1783회

Node.js 에서 express 프레임 워크 기반의 데이터베이스는 MongoDB 를 사용하고 있습니다.

그런데, 댓글과 하위댓글을 구성하고자 하니, 어떻게 구현해야할지 생각보다 쉽지 않더라구요.

혹시 이러한 기능을 구현해보시거나, 경험해보신 분들의 조언을 들을 수 있을까요.

1 답변

  • 질문하시는 것은 일대다 관계(one-to-many relation)에 관한 것입니다.

    하나의 글은 여러 댓글을 가질 수 있고 각 댓글은 각각 여러 개의 댓글을 가질 수 있죠. 하지만 하나의 댓글이 여러 개의 글을 가지지 못하고, 마찬가지로 하나의 댓글이 여러 개의 댓글에 하위댓글로 달릴 수도 없습니다. 따라서 공식 문서이런 글을 참조해 보면 대충 이렇게 구성할 수 있겠네요.

    /* 전략 */
    {
      _id: 102,
      comment: "꼬우면... 아시죠?",
      /* 중략 */
      subcomments: [103, 105, 111, 156] /* 하위댓글로 처리되는 comment._id들 */
    },
    {
      _id: 103,
      comment: "ㄴㅋㅋㅋㅋㅋㅋㅋㅋ",
      /* 중략 */
      subcomments: null /* 딱히 하위댓글이 없거나 삭제되었으면 키를 없애거나 null 처리 */
    },
    /* 하략 */
    
    • 안녕하세요 엽토군님. 답변 대단히 감사합니다. 다만 제가 걱정하는 것은 다음과 같습니다. 1. 서브도큐먼트 설계 시 정렬 2. 관리자단에서의 전체 댓글 조회 3. MongoDB의 subdocument 쿼리의 약점(물론 aggregate를 사용하면 되지만요 ^^;;) 입니다. 김운아 2018.8.4 12:52

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)