MongoDB를 ObjectId가
처음 몇 장에서 우리는 MongoDB의 오브젝트 아이디 (ObjectId가) 사용하고 있습니다.
이 섹션에서 우리는 ObjectId가의 구조에서 찾을 것입니다.
ObjectId가 BSON는 12 바이트 데이터 유형의 형식은 다음과 같습니다
- 첫 번째 4 바이트 타임 스탬프
- 머신 코드의 다음의 3 바이트는
- 즉시 프로세스 ID로 구성이 바이트 (PID)
- 임의의 숫자의 마지막 3 바이트.
저장 MongoDB를 문서는 "_id"키가 있어야합니다. 이 키의 값은 어떤 유형이 될 수 있습니다, 기본은 ObjectId가 개체입니다.
각 문서 안에 한 세트는 고유 한 "_id"값이 각 문서를 고유하게 식별 할 수있는 내부 컬렉션을 보장합니다.
MongoDB를이 ObjectId가를 사용하지만 기본 키 값이 자동으로 여러 서버에 동기화를 증가하기 때문에 (예 : 자동 증가 기본 키 등)하지 않는 주된 이유는 다른보다 전통적인 접근 방식은 또한 시간이 많이 걸리는 힘든이다.
새로운 ObjectId가 만들기
새로운 ObjectId가를 생성하기 위해 다음 코드를 사용 :
>newObjectId = ObjectId()
위의 문장은 다음과 같은 고유하게 생성 된 ID를 반환
ObjectId("5349b4ddd2781d08c09890f3")
또한 대신 자동으로 ObjectId가 발생하여 MongoDB의 생성 된 ID를 사용할 수 있습니다 :
>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")
창조 타임 스탬프 문서
ObjectId가 있기 때문에 타임 스탬프의 4 바이트에 저장, 그래서 당신은 당신이 getTimestamp 기능으로 문서를 얻을 수있는 시간을 만들 수 있습니다, 문서에 대한 타임 스탬프 필드를 저장할 필요가 없습니다 :
>ObjectId("5349b4ddd2781d08c09890f4").getTimestamp()
위의 코드는 ISO 형식으로 문서 작성 시간을 반환합니다 :
ISODate("2014-04-12T21:49:17Z")
ObjectId가 문자열로 변환
경우에 따라서는 문자열 ObjectId가 형식을 변환해야 할 수 있습니다. 다음과 같은 코드를 사용할 수 있습니다 :
>new ObjectId().str
위의 코드는 문자열 가이 형식을 반환합니다 ::
5349b4ddd2781d08c09890f3