Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB에서 ObjectId를 생성하는 방법

MongoDB에서 ObjectId 생성하기

MongoDB는 각 문서(document)에 고유한 식별자를 부여하기 위해 ObjectId를 사용합니다. 새로운 ObjectId를 직접 생성하고 싶다면 mongo 셸에서 아래와 같은 구문을 사용하면 됩니다.

new ObjectId()

실행 예시

실제로 위 구문을 mongo 셸에서 여러 번 실행해 보겠습니다.

> new ObjectId()
ObjectId("5cd7bf2f6d78f205348bc646")

> new ObjectId()
ObjectId("5cd7bf316d78f205348bc647")

> new ObjectId()
ObjectId("5cd7bf336d78f205348bc648")

> new ObjectId()
ObjectId("5cd7bf346d78f205348bc649")

> new ObjectId()
ObjectId("5cd7bf356d78f205348bc64a")

> new ObjectId()
ObjectId("5cd7bf396d78f205348bc64b")

> new ObjectId()
ObjectId("5cd7bf3a6d78f205348bc64c")

위 실행 결과에서 확인할 수 있듯이, new ObjectId()를 호출할 때마다 매번 새로운 고유한 ObjectId가 생성되어 반환됩니다.

ObjectId의 구조 이해하기

ObjectId는 12바이트 크기의 BSON 타입으로, 다음 세 가지 요소로 구성됩니다.

  • 4바이트 타임스탬프: ObjectId가 생성된 시점의 유닉스 시간(초 단위)을 나타냅니다.
  • 5바이트 랜덤 값: 프로세스가 시작될 때 한 번 생성되는 임의의 값으로, 서버나 프로세스를 구분하는 데 사용됩니다.
  • 3바이트 증가 카운터: 같은 초 내에 여러 개의 ObjectId가 생성될 때 중복을 방지하기 위해 증가하는 값입니다.

이러한 구조 덕분에 ObjectId는 분산 환경에서도 별도의 중앙 조율 없이 거의 충돌 없이 고유한 값을 생성할 수 있으며, 문서가 생성된 대략적인 시간도 ObjectId만으로 파악할 수 있다는 장점이 있습니다.