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
'Program Tip' 카테고리의 다른 글
보이지 않는 문자열 값이있는 새 레코드를 데이터 프레임에 추가 할 때 보이지 않는 요인 수준으로 인해 경고가 발생하고 NA가 발생합니다. (0) | 2020.11.15 |
---|---|
정규식의 복잡성은 무엇입니까? (0) | 2020.11.15 |
소켓 대 SocketChannel (0) | 2020.11.15 |
Perl에서 shift ()는 무엇을합니까? (0) | 2020.11.15 |
IntelliJ IDEA 용 Visual Studio ReSharper 키맵 (0) | 2020.11.15 |