본문 바로가기
TIL

[MongoDB] ObjectId란

by 윤루트 2021. 8. 17.

ObjectId의 의미

MongoDB의 _id는 ObjectId 타입이다.

 

ObjectId는 같은 document 내에서 유일함이 보장되는 12byte 크기의 문자와 숫자로 구성된 값이다. RDBMS의 Primary key와 같이 고유한 키를 의미한다. Primary key는 DBMS가 직접 부여하지만, ObjectId는 클라이언트에서 생성한다. 이것은 MongoDB 클러스터에서 Sharding된 데이터를 빠르게 가져오기 위함인데, Router(mongos)는 ObjectId를 보고 데이터가 존재하는 Shard에서 데이터를 요청할 수 있다.

 

Collection에 데이터를 넣을 때 ObjectId를 직접 넣어주지 않는 이상 자동으로 값이 부여되어 저장된다. 그리고 모든 데이터들은 각각의 ObjectId를 부여받는다.

 

ObjectId의 구성

- 첫 4byte : Unix시대부터 초단위로 측정된 값을 의미한다.

- 다음 5byte : 랜덤으로 생성된 값

- 다음 3byte : 증가하는 count이며 최초값은 랜덤으로 생성된다.

 

 

'TIL' 카테고리의 다른 글

[TIL] ELK와 EFK  (0) 2022.04.18
[TIL] Nginx가 뭐지?  (0) 2022.03.31
Mac에서 Git Personal Access Token 설정하기  (0) 2021.08.20
URI와 URL의 차이  (0) 2021.08.08

댓글