ObjectId()
설명
ObjectId(<value>)
중요
Mongo쉬 방법
이는
mongosh
메서드입니다. 이는Node.js
또는 기타 프로그래밍 언어별 드라이버 메서드에 대한 설명서가 아닙니다 .대부분의 경우
mongosh
메서드는 레거시mongo
shell 메서드와 동일한 방식으로 작동합니다. 그러나 일부 레거시 메서드는mongosh
에서 사용할 수 없습니다.레거시
mongo
셸 문서는 해당 MongoDB 서버 릴리스 문서를 참조하세요.MongoDB API 드라이버의 경우 언어별 MongoDB 드라이버 문서를 참조하세요.
새 ObjectId를 반환합니다. 12바이트 ObjectId는 다음으로 구성됩니다.
Unix epoch 이후 초 단위로 측정된 ObjectId 생성을 나타내는 4바이트 타임스탬프입니다.
프로세스당 한 번씩 생성되는 임의의 5바이트 값입니다. 이 임의의 값은 머신과 프로세스마다 고유합니다.
임의의 값으로 초기화되는 3바이트 증분 카운터입니다.
타임스탬프 및 카운터 값의 경우 가장 중요한 바이트가 바이트 시퀀스 (빅 엔디안) 에서 가장 먼저 나타납니다. 이는 최하위 바이트가 먼저 나타나는(리틀 엔디안) 다른 BSON 값과 다릅니다.
ObjectId를 생성하는 데 정수 값이 사용되는 경우 정수가 타임스탬프를 대체합니다.
호환성
다음 환경에서 호스팅되는 배포에 ObjectId()
사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
ObjectId()
는 다음 입력 중 하나를 사용할 수 있습니다.
입력 유형 | 설명 |
---|---|
| 선택 사항. 새 ObjectId 의 24자 16진수 문자열 값입니다. |
| 선택 사항입니다. 정수 값(초)이 유닉스 시간 에 추가되어 새 타임스탬프를 생성합니다. |
방법
ObjectId()
에는 다음과 같은 메서드가 있습니다.
방법 | 설명 |
---|---|
객체의 타임스탬프 부분을 날짜로 반환합니다. | |
ObjectId를 16진수 문자열로 반환합니다. |
행동
MongoDB 5.0부터는 mongosh
가 레거시 mongo
셸을 대체합니다. ObjectId()
메서드는 mongosh
에서 레거시 mongo
셸과 다르게 작동합니다. 레거시 메서드에 대한 자세한 내용은 레거시 Mongo 셸을 참조하세요.
예시
새 ObjectId 생성
새 ObjectId를 생성하려면 인수 없이 ObjectId()
를 사용합니다.
newObjectId = ObjectId()
이 예에서 newObjectId
의 값은 다음과 같습니다.
ObjectId("507f1f77bcf86cd799439011")
16진수 문자열 반환
ObjectId를 16진수 문자열로 반환하려면 toString()
메서드를 사용합니다.
ObjectId("507f191e810c19729de860ea").toString()
이 메서드는 다음을 반환합니다.
507f191e810c19729de860ea
날짜 지정
사용자 지정 Date를 사용하여 ObjectId를 지정할 수 있습니다.
timestamp
를 인수로 사용해 새 ObjectId를 설정합니다.
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진수 문자열 지정하기
16진수 문자열을 사용하여 ObjectId를 지정하려면 ObjectId()
를 호출할 때 고유한 24자 16진수 값을 전달하세요.
newObjectId = ObjectId("507f191e810c19729de860ea")