2012-03-14 3 views

답변

43

문서의 오타 일뿐입니다. _id 필드는 모든 문서의 기본 키입니다. _id이라고하며 id을 통해 액세스 할 수도 있습니다. id 키를 사용하면 illegal ObjectId format 오류가 발생할 수 있습니다.

이 섹션은 자동 생성 된 ObjectID가 타임 스탬프로 시작한다는 것을 나타냅니다. 따라서 문서를 자동으로 정렬 할 수 있습니다. _id은 모든 컬렉션에서 자동으로 인덱싱되므로 매우 좋습니다. 자세한 내용은 http://www.mongodb.org/display/DOCS/Object+IDs을 참조하십시오. 구체적으로 "BSON ObjectID Specification"아래에 있습니다.

BSON ObjectID는 4 바이트 시간 소인 (기원 이후 경과 시간), 3 바이트 컴퓨터 ID, 2 바이트 프로세스 ID 및 3 바이트 카운터로 구성된 12 바이트 값입니다. 타임 스탬프와 카운터 필드는 BSON의 나머지 부분과 달리 빅 엔디안으로 저장되어야합니다.

+6

은 컬렉션의 각 문서에 필수입니다. 즉,'_id' 필드없이 새 문서를 만들 수 있습니까? –

+2

@KevinMeredith [here] (https://docs.mongodb.com/manual/reference/bson-types/#objectid)에 지정된대로, '_id' 필드는 필수 항목입니다.«MongoDB에서 컬렉션에 저장된 각 문서에는 기본 키 역할을하는 고유 한'_id' 필드가 필요합니다. 삽입 된 문서가'_id' 필드를 생략하면, MongoDB 드라이버는 자동으로'_id' 필드»의'ObjectId'를 생성합니다. – BowPark

10

_id 필드는 Bson ObjectId의 기본 필드이며 기본적으로 인덱싱됩니다.

_id 및 id는 동일하지 않습니다. 원하는 경우 id 필드를 추가하도록 선택할 수도 있지만 인덱스를 추가하지 않으면 인덱스되지 않습니다.

문서의 오타입니다.

0

내 두 센트 :

_id 필드

MongoDB 각 문서에 _id 필드를 할당하고 그 위에 차 인덱스를 할당합니다. 우리가 2 차 지표를 적용 할 수있는 방법이 있습니다. 기본적으로 MongoDBObjectID 유형의 _id 필드에 대한 값을 만듭니다. (3 바이트 (4 바이트, 유닉스 에포크 초의 수를 나타내는 타임 스탬프 값) + MAC 주소

OBJECTID (12 바이트의 16 진수 문자열) = 날짜 :이 값은 BSON 스펙에서 정의하고 이러한 방식 구조체있어) + PID (2 바이트) + 카운터 (3 바이트)