Program Tip

MongoDB에서 "id"와 "_id"필드의 차이점

programtip 2020. 11. 15. 11:41
반응형

MongoDB에서 "id"와 "_id"필드의 차이점


MongoDB 문서의 필드 ID 또는 _ID 사용에 차이가 있습니까?

나는 보통 "_id"를 사용하기 때문에 이것을 묻지 만, 문서에서 이런 종류 ({id : -1})를 보았다 : http://www.mongodb.org/display/DOCS/Optimizing+Object+IDs# OptimizingObjectIDs-Sortbyidtosortbyinsertiontime

편집하다

문서가 잘못된 것으로 밝혀졌습니다.


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

이 섹션은 자동으로 생성 된 ObjectID가 타임 스탬프로 시작 함을 나타내므로 문서를 자동으로 정렬 할 수 있습니다. _id모든 컬렉션에서 자동으로 색인이 생성 되기 때문에 이것은 매우 멋집니다 . 자세한 내용은 http://www.mongodb.org/display/DOCS/Object+IDs 를 참조하십시오. 특히 "BSON ObjectID 사양"아래에 있습니다.

BSON ObjectID는 4 바이트 타임 스탬프 (epoch 이후 초), 3 바이트 시스템 ID, 2 바이트 프로세스 ID 및 3 바이트 카운터로 구성된 12 바이트 값입니다. 타임 스탬프 및 카운터 필드는 나머지 BSON과 달리 빅 엔디안을 저장해야합니다.


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

_id그리고 이드는 같지 않습니다. id원하는 경우 호출 된 필드를 추가하도록 선택할 수도 있지만 색인을 추가하지 않으면 색인이되지 않습니다.

문서의 오타 일뿐입니다.


id는 mongoid.id의 _id에 대한 별칭이며 문서의 _id를 반환합니다. https://github.com/mongodb/mongoid/blob/master/lib/mongoid/fields.rb#L47

_id 필드가 지정되지 않은 경우 ObjectedId가 자동으로 생성됩니다.


내 2 센트 :

_id 필드

MongoDB배정하는 일이 _id그것의 각 문서 및 양수인 차 인덱스 필드. 2 차 지수도 적용 할 수있는 방법이 있습니다. 기본적 MongoDB으로은 _id유형 필드에 대한 값을 만듭니다 ObjectID. 이 값은 BSON사양에 정의되어 있으며 다음 과 같이 구성됩니다.

ObjectID (12 바이트 HEX 문자열) = 날짜 (4 바이트, Unix 시대 이후 초 수를 나타내는 타임 스탬프 값) + MAC 주소 (3 바이트) + PID (2 바이트) + 카운터 (3 바이트)

참고 URL : https://stackoverflow.com/questions/9694460/difference-between-id-and-id-fields-in-mongodb

반응형