몽고DB 튜토리얼login
몽고DB 튜토리얼
작가:php.cn  업데이트 시간:2022-04-21 17:49:03

MongoDB 객체 ID



이전 장에서는 MongoDB의 객체 ID(ObjectId)를 사용했습니다.

이 장에서는 ObjectId의 구조를 이해하겠습니다.

ObjectId는 다음 형식의 12바이트 BSON 유형 데이터입니다.

  • 처음 4바이트는 타임스탬프를 나타냅니다

  • 다음 3바이트는 기계 식별 코드입니다.

  • 다음 2바이트는 프로세스 ID(PID)로 구성됩니다.

  • 마지막 3바이트 난수입니다.

MongoDB에 저장된 문서에는 "_id" 키가 있어야 합니다. 이 키의 값은 모든 유형이 될 수 있으며 기본값은 ObjectId 개체입니다.

컬렉션에서 각 문서에는 컬렉션의 각 문서를 고유하게 식별할 수 있도록 고유한 "_id" 값이 있습니다.

MongoDB가 다른 기존 방법(예: 자동으로 기본 키 증가) 대신 ObjectId를 사용하는 주된 이유는 서버의 기본 키 값을 동기화하고 자동으로 늘리는 것은 힘들고 시간이 많이 걸립니다.


새 ObjectId 만들기

다음 코드를 사용하여 새 ObjectId를 생성합니다.

>newObjectId = ObjectId()

위 문은 다음과 같이 생성된 고유 ID를 반환합니다.

ObjectId("5349b4ddd2781d08c09890f3")

생성된 ID를 사용하여 MongoDB에서 자동으로 생성된 ObjectId를 대체할 수도 있습니다.

>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")

생성된 문서의 타임스탬프

ObjectId는 4바이트 타임스탬프를 저장하므로, 따라서 문서의 타임스탬프 필드를 저장할 필요가 없으며 getTimestamp 함수를 통해 문서 생성 시간을 얻을 수 있습니다.

>ObjectId("5349b4ddd2781d08c09890f4").getTimestamp()

위 코드는 문서 생성 시간을 ISO 형식으로 반환합니다.

ISODate("2014-04-12T21:49:17Z")

ObjectId를 문자열로 변환

어떤 경우에는 ObjectId를 문자열 형식으로 변환해야 할 수도 있습니다. 다음 코드를 사용할 수 있습니다.

>new ObjectId().str

위 코드는 Guid 형식의 문자열을 반환합니다.

5349b4ddd2781d08c09890f3

PHP 중국어 웹사이트