Contents

Mongodb에서 왜 컬렉션이 필요할까?

MongoDB에서 왜 컬렉션 개념이 필요할까?

MongoDB에서는 다른 구조의 document도 동일한 컬렉션에 저장할 수 있다. 그럼 왜 컬렉션이란 개념이 있을까? 필요하지 않을 것 같은데. document에 별도의 schema가 필요 없는데 왜 하나 이상의 컬렉션이 필요할까?

개발하는 입장에서 더 편하게 사용하기 위해서

각 쿼리가 특정 schema를 고수하는 document를 반환하는지, 또는 쿼리한 코드가 다른 구조의 document를 다룰 수 있는지 확실히 확인해야 한다. 컬렉션을 동일한 schema 구조로 작성한다면 번거로운 일을 줄일 수 있기 때문이다.

  • 블로그 게시물을 쿼리한 데이터 중 ‘작성자’ 데이터만 제거하는 일은 번거롭다.

컬렉션 별로 list up 하는 것이 특정 데이터 type 별로 쿼리해서 list up할 때보다 훨씬 빠르기 때문

“요약”, “전체”, “뚱뚱이 원숭이"와 같은 컬렉션형을 값으로 하는 “type” 키가 document 내에 있다면 단일 컬렉션에 들어 있는 값을 찾기보다 세 컬렉션 중에서 올바른 컬렉션을 쿼리하는 것이 훨씬 빠르다

같은 종류의 데이터를 하나의 컬렉션에 모아두면 data locality를 유지할 수 있기 때문

블로그 게시물 여러 개를 뽑을 때, 게시물 + 저자 정보가 들어 있는 컬렉션보다 게시물만 있는 컬렉션에서 뽑을 때 디스크 탐색 시간이 짧다 (더 빠르다)

컬렉션을 효율적으로 인덱싱하기 위해서

인덱스 생성 시 도큐먼트는 특정 구조를 가져야 한다. 인덱스는 컬렉션 별로 정의하는데, 같은 유형의 도큐먼트를 하나의 컬렉션에 넣음으로써 컬렉션을 효율적으로 인덱싱할 수 있다.