본문 바로가기
DATA

MongoDB 기본 개념

by bzerome240 2022. 12. 26.

 

 

Document


: MongoDB에서 데이터를 저장하는 단위

 

  • 형식은 미리 정해지지 않았다.
  • 같은 Collection에 속한 Document라고해서 같은 형식을 따를 필요는 없다.

 


_id 필드

  • _id 필드는 각 document의 primary key로서 반드시 가져야 한다.
  • 직접 지정하지 않으면 objectid형식의 데이터가 자동 생성된다.

 


ObjectId


ObjectId (12bytes) = timestamp (4) + random (5) + counter (3)


직접 _id를 지정하지 않을 때 장점

ObjectId.getTimestamp()를 통해 별도의 필드 없이 생성 시점을 가져올 수 있다.

ObjectId의 맨앞이 timestamp라서 정렬하면 시간순 정렬이 된다.

 


Collection

  • Document를 저장하기 위한 논리적인 묶음 (RDB의 table과 유사)
  • Document 형식에 제약은 없지만, Collection 단위에서 같은 형식을 가지도록 제약을 걸 수 있다. (스키마 규칙 프로그래밍 모델 추천)

 


Schema 와 성능

  • 필드안에 필드가있을 수 있다. 단, inner field로 저장하면 검색, 집계 연산 시 속도가 느려진다. 따라서 검색 효율성도 고려하여 Document의 형식을 정하는 것이 좋다.
  • 데이터가 많지 않으면 큰 차이는 없으므로 서비스 규모가 작다면 성능 문제를 이것저것 고려하지 않고 개발속도를 끌어올릴 수 있다. 나중에 리팩토링을 해도 된다.
728x90
반응형

댓글