하지만 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개 넣을 수 있지요.
서브다큐먼트에서 이 용량을 초과할 가능성이 있다면 컬렉션을 분리시키는 것이 좋습니다.