더북(TheBook)

하지만 NoSQL에서는 그냥 모든 것을 문서 하나에 넣습니다. 문서 예시의 형식을 한번 살펴볼까요?

{
  _id: ObjectId,
  title: String,
  body: String,
  username: String,
  createdDate: Date,
  comments: [
  {
      _id: ObjectId,
      text: String,
      createdDate: Date,
  },
],
};

이런 상황에서 보통 MongoDB는 댓글을 포스트 문서 내부에 넣습니다. 문서 내부에 또 다른 문서가 위치할 수 있는데, 이를 서브다큐먼트(subdocument)라고 합니다. 서브다큐먼트 또한 일반 문서를 다루는 것처럼 쿼리할 수 있습니다.

문서 하나에는 최대 16MB만큼 데이터를 넣을 수 있는데요. 100자 댓글 데이터라면 대략 0.24KB 를 차지합니다. 16MB는 16,384KB이니 문서 하나에 댓글 데이터를 약 68,000개 넣을 수 있지요.

서브다큐먼트에서 이 용량을 초과할 가능성이 있다면 컬렉션을 분리시키는 것이 좋습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.