Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

ObjectId()

이 페이지의 내용

  • 설명
  • 호환성
  • 구문
  • 방법
  • 행동
  • 예시
ObjectId(<value>)

중요

Mongo쉬 방법

이 페이지에서는 mongosh 메서드를 설명합니다. 이는 Node.js와 같은 언어별 드라이버에 대한 설명서가 아닙니다.

MongoDB API 드라이버의 경우 언어별 MongoDB 드라이버 설명서를 참조하세요.

ObjectId를 반환합니다. 12바이트 ObjectId는 다음으로 구성됩니다.

  • Unix epoch 이후 초 단위로 측정된 ObjectId 생성을 나타내는 4바이트 타임스탬프입니다.

  • 프로세스당 한 번씩 생성되는 임의의 5바이트 값입니다. 이 임의의 값은 머신과 프로세스마다 고유합니다.

  • 임의의 값으로 초기화되는 3바이트 증분 카운터입니다.

타임스탬프 및 카운터 값의 경우 가장 중요한 바이트가 바이트 시퀀스 (빅 엔디안) 에서 가장 먼저 나타납니다. 이는 최하위 바이트가 먼저 나타나는(리틀 엔디안) 다른 BSON 값과 다릅니다.

ObjectId를 생성하는 데 정수 값이 사용되는 경우 정수가 타임스탬프를 대체합니다.

다음 환경에서 호스팅되는 배포에 ObjectId() 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

ObjectId() 는 다음 입력 중 하나를 사용할 수 있습니다.

입력 유형
설명
hexadecimal
선택 사항. 새 ObjectId 의 24자 16진수 문자열 값입니다.
integer
선택 사항입니다. 정수 값(초)이 유닉스 시간 에 추가되어 새 타임스탬프를 생성합니다.

ObjectId() 에는 다음과 같은 메서드가 있습니다.

방법
설명
객체의 타임스탬프 부분을 날짜로 반환합니다.
ObjectId를 16진수 문자열로 반환합니다.

MongoDB 5.0부터는 mongosh가 레거시 mongo 셸을 대체합니다. ObjectId() 메서드는 mongosh에서 레거시 mongo 셸과 다르게 작동합니다. 레거시 메서드에 대한 자세한 내용은 레거시 Mongo 셸을 참조하세요.

새 ObjectId를 생성하려면 인수 없이 ObjectId()를 사용합니다.

newObjectId = ObjectId()

이 예에서 newObjectId의 값은 다음과 같습니다.

ObjectId("507f1f77bcf86cd799439011")

ObjectId를 16진수 문자열로 반환하려면 toString() 메서드를 사용합니다.

ObjectId("507f191e810c19729de860ea").toString()

이 메서드는 다음을 반환합니다.

507f191e810c19729de860ea

사용자 지정 Date를 사용하여 ObjectId를 지정할 수 있습니다.

1

내부적으로 Date 객체는 유닉스 시간 이후의 밀리초 수를 나타내는 부호 있는 64비트 정수로 저장됩니다. 자세한 내용은 Date() 를 참조하세요.

myDate = new Date( "2024-01-01" )
2
timestamp = Math.floor( myDate / 1000 )
3

ObjectId.getTimestamp()를 사용하여 Date를 확인할 수 있습니다.

newObjectId = ObjectId(timestamp)
ObjectId("6592008029c8c3e4dc76256c")

ObjectId 타임스탬프를 조정하려면 정수를 사용하여 새 ObjectId를 생성하세요.

newObjectId = ObjectId(32)

ObjectId 값은 다음과 유사합니다.

ObjectId("00000020f51bb4362eee2a4d")

예시 ObjectId는 다음과 같이 구성됩니다.

  • 4바이트 타임스탬프. 00000020

  • 5바이트 무작위 요소, f51bb4362e

  • 3바이트 카운터, ee2a4d

ObjectId의 처음 4바이트는 유닉스 시간 이후의 시간(초)입니다. 이 예시에서 ObjectId 타임스탬프는 00000020이며 16진수로는 32입니다.

16진수 문자열을 사용하여 ObjectId를 지정하려면 ObjectId()를 호출할 때 고유한 24자 16진수 값을 전달하세요.

newObjectId = ObjectId("507f191e810c19729de860ea")

다음도 참조하세요.

돌아가기

HexData