문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

ObjectId()

이 페이지의 내용

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

중요

Mongo쉬 방법

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

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

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

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

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

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

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

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

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

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

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

입력 유형
설명
hexadecimal
선택 사항. 새 객체 ID 의 24자 16진수 문자열 값입니다.
integer
선택 사항. 초 단위의 정수 값이 Unix epoch 에 추가됩니다. 을(를) 클릭하여 새 타임스탬프를 생성합니다.

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

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

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

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

newObjectId = ObjectId()

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

ObjectId("507f1f77bcf86cd799439011")

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

ObjectId("507f191e810c19729de860ea").toString()

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

507f191e810c19729de860ea

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

1

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

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

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

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

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

newObjectId = ObjectId(32)

객체 ID 값은 다음과 유사합니다.

ObjectId("00000020f51bb4362eee2a4d")

예시 객체 ID는 다음과 같이 구성됩니다.

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

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

  • 3바이트 카운터, ee2a4d

ObjectId의 처음 4바이트는 Unix epoch 이후 경과된 시간(초)입니다. . 이 예제에서 ObjectId 타임스탬프는 이며, 16진수로는 00000020 32 입니다.

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

newObjectId = ObjectId("507f191e810c19729de860ea")

다음도 참조하세요.

← Date() and Datetime