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
반응형
'DATA' 카테고리의 다른 글
분산 시스템의 특징 (0) | 2023.02.18 |
---|---|
로그란? & 로그 수집 아키텍처 (0) | 2023.01.11 |
NoSQL 종류 - MongoDB, Redis, Hbase, Druid (0) | 2022.12.25 |
MongoDB란? windows 설치하기 / Studio 3T, Compass 사용하기 (0) | 2022.12.24 |
[Fastcampus 데이터 엔지니어링] 데이터 엔지니어는 어떤 언어를 배워야 할까? (0) | 2022.12.03 |
댓글