English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MongoDB ObjectId

이전 장에서는 MongoDB ObjectId를 사용해왔습니다. 이 장에서는 ObjectId의 구조를 이해하겠습니다.

ObjectId는 하나의12바이트는 BSON 타입을 가진다. 다음과 같은 구조를 가집니다-

  • 먼저4바이트는 unix 새 시작 이후의 초를 나타냅니다

  • 다음3바이트는 기계 식별자입니다

  • 다음2바이트는 프로세스 id로 구성됩니다

  • 마지막3바이트는 랜덤 카운터 값입니다

MongoDB는 ObjectIds를 사용합니다_id각 문서 필드의 기본 값은, 문서를 생성할 때 생성되는 값입니다. ObjectId의 복잡한 조합은 모든 _id 필드가 유일하게 만듭니다.

새 ObjectId 생성

새 ObjectId를 생성하려면 다음 코드를 사용하십시오-

>newObjectId = ObjectId()

위의 문장은 다음과 같은 유일하게 생성된 id를 반환합니다-

ObjectId("5349b4ddd2781d08c09890f3)

MongoDB가 생성하는 ObjectId를 제공하는 것 외에도, 다음과 같은 것을 제공할 수 있습니다12바이트의 ID-

>myObjectId = ObjectId("5349b4ddd2781d08c09890f4)

문서 생성 시간

ObjectId는 기본적으로 _id에 저장됩니다4바이트의 시간 표시, 따라서 대부분의 경우 문서의 생성 시간을 저장할 필요가 없습니다. getTimestamp 메서드를 사용하여 문서의 생성 시간을 가져올 수 있습니다-

>ObjectId("5349b4ddd2781d08c09890f4).getTimestamp()

이는 이 문서의 생성 시간을 ISO 날짜 형식으로 반환합니다-

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

ObjectId를 String으로 변환

일부 경우, 문자열 형식의 ObjectId 값이 필요할 수 있습니다. ObjectId를 문자열 형식으로 변환하려면 다음 코드를 사용하세요-

>newObjectId.str

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

5349b4ddd2781d08c09890f3