Latest web development tutorials

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