English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이전 장에서는 MongoDB ObjectId를 사용해왔습니다. 이 장에서는 ObjectId의 구조를 이해하겠습니다.
ObjectId는 하나의12바이트는 BSON 타입을 가진다. 다음과 같은 구조를 가집니다-
먼저4바이트는 unix 새 시작 이후의 초를 나타냅니다
다음3바이트는 기계 식별자입니다
다음2바이트는 프로세스 id로 구성됩니다
마지막3바이트는 랜덤 카운터 값입니다
MongoDB는 ObjectIds를 사용합니다_id
각 문서 필드의 기본 값은, 문서를 생성할 때 생성되는 값입니다. ObjectId의 복잡한 조합은 모든 _id 필드가 유일하게 만듭니다.
새 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 값이 필요할 수 있습니다. ObjectId를 문자열 형식으로 변환하려면 다음 코드를 사용하세요-
>newObjectId.str
위의 코드는 Guid 문자열 형식을 반환합니다-
5349b4ddd2781d08c09890f3