_id
필드는 기본 키에 mongodb
에 예약되어 있습니다. 그런데 왜 mongodb
이 이렇게 디자인 되었습니까? 기본 키를 직접 정의 할 수 있습니까?mongodb에서 기본 키를 직접 정의 할 수없는 이유는 무엇입니까?
답변
예, 컬렉션에 고유 한 기본 키를 정의 할 수 있습니다. MongoDB 드라이버는 자동으로 고유 한 _id 값을 생성합니다. 그러나이 _id 값을 무시할 수 있습니다.
예 : 012.Yourcollection.insert ({_ id : "myuniquevalueN", a : 1, b : 1})
고유성을 강화하는 보조 색인을 만들 수도 있습니다. 아래 참조 : http://docs.mongodb.org/manual/tutorial/create-a-unique-index/
질문의 이유를 이해할 수 있을지 잘 모르겠습니다. _id는 기본 키이며 콜렉션 내에서 문서의 고유성을 보장하고 고유 한 ID로 문서를 검색하는 수단을 제공합니다. 목적은 다른 데이터베이스의 기본 키와 다르지 않습니다. 사전 정의 된 이유는 무엇입니까? 부분적으로 MongoDB가 그 목적을 위해 하나를 지정하지 않으면 MongoDB가 자동으로 고유 한 객체 ID 값을 할당하기 때문입니다. 표준 _id 필드를 사용하면 구현이 간단 해집니다.
고유 한 ID가 필요합니다. mongodb 노드가 지리적으로 분산 될 수 있기 때문에 잠재적 인 충돌 가능성을 최소화하는 것이 목표입니다.
_id 필드는 지리적 분포와 아무 관련이 없습니다. 목적은 다른 시스템의 기본 키와 다르지 않습니다. 지리적 분포는 네트워크 파티션과 같은 것을 다루는 HA를 제공하는 복제 세트에 의해 처리됩니다. 일부 사람들은 샤딩과 함께 위치 정보 태그를 사용하여 특정 위치/DC로 쿼리를 라우팅하지만 이는 _id 필드와 아무 관련이 없습니다. –
- 1. 기본 키를 자동으로 증가시킬 수없는 이유는 무엇입니까?
- 2. 구조체를 직접 할당 할 수없는 이유는 무엇입니까?
- 3. 함수를 직접 할당 할 수없는 이유는 무엇입니까?
- 4. DbContext.ObjectContext를 직접 호출 할 수없는 이유는 무엇입니까?
- 5. 함수를 직접 호출 할 수없는 이유는 무엇입니까?
- 6. MongoDB에서 복제 데이터를 읽을 수없는 이유는 무엇입니까?
- 7. React가 키를 추가 할 수없는 이유는 무엇입니까?
- 8. MongoDB에서 기본 키를 설정하는 방법은 무엇입니까?
- 9. mongodb에서 _id로 레코드를 찾을 수없는 이유는 무엇입니까?
- 10. 기본 키를 사용해야하는 이유는 무엇입니까?
- 11. GHCi에서 유형을 정의 할 수없는 이유는 무엇입니까?
- 12. 이 PHP 함수의 결과로 키를 참조 할 수없는 이유는 무엇입니까?
- 13. 코덱을 직접 작성할 수없는 이유는 무엇입니까?
- 14. "defaultTextFormat"을 직접 설정할 수없는 이유는 무엇입니까?
- 15. CQL에서 기본 키별로 정렬 할 수없는 이유는 무엇입니까?
- 16. BeginInvoke를 대리인에게 할당하지 않고 직접 호출 할 수없는 이유는 무엇입니까?
- 17. 직접 창에서 std :: vector를 인덱싱 할 수없는 이유는 무엇입니까?
- 18. 인덱스가있는 배열에 직접 액세스 할 수없는 이유는 무엇입니까?
- 19. 검색 엔진이 Ajax 사이트를 직접 인덱싱 할 수없는 이유는 무엇입니까?
- 20. ++ 또는 -을 JavaScript의 리터럴에 직접 적용 할 수없는 이유는 무엇입니까?
- 21. Arraylist를 Jlist에 직접 추가 할 수없는 이유는 무엇입니까?
- 22. int 객체에서 직접 메서드를 호출 할 수없는 이유는 무엇입니까?
- 23. UIScrollView에 직접 항목을 추가 할 수없는 이유는 무엇입니까?
- 24. Windows의 wx.Menu에 이벤트를 직접 바인딩 할 수없는 이유는 무엇입니까?
- 25. 공개 이벤트를 외부에서 직접 호출 할 수없는 이유는 무엇입니까?
- 26. 로컬 서비스에 직접 액세스 할 수없는 이유는 무엇입니까?
- 27. byref가있는 함수를 대리자로 직접 변환 할 수없는 이유는 무엇입니까?
- 28. enable_shared_from_this가 임베디드 weak_ptr에 직접 액세스 할 수없는 이유는 무엇입니까?
- 29. MongoDB에서 특별한 정렬 키를 정의 할 수 있습니까?
- 30. 해시 맵에서 키를 찾을 수없는 이유는 무엇입니까?
모든 레코드에 '_id'필드 만있는 것이 보장되지 않습니까? 다른 것이 없다면 아주 좋은 열쇠를 만들 수 없습니다. – David