2011-10-14 5 views
22

Codeigniter와 MongoDB를 사용하여 API를 개발 중입니다. 이 시스템에서는 선택한 사용자가 을 따르는 사용자의 성명과 _ID를 저장합니다._Id를 MongoDB에 객체 또는 문자열로 저장 하시겠습니까?

_Id와 관련하여 최선의 방법은 무엇입니까? 객체 또는 문자열로 저장 하시겠습니까? 객체로 저장할 경우 팔로워를 반향 출력 할 때 문자열로 변환해야합니다. 출력이 이상하게 보입니다.

내 질문은 정말입니다. _Id를 객체가 아닌 문자열로 저장하는 것이 좋습니까? 문자열로 저장하는 단점은 무엇입니까?

모든 입력에 감사드립니다!

답변

18

요청에 대한 성능 (및 업데이트)이 실제로는 objectid에서 더 좋습니다. 더 이상, objectid는 공간이 아주 작습니다. 공식 문서에서

:

BSON 바이트 배열을 저장하기위한 이진 데이터의 데이터 유형을 포함한다. 을 사용하면 id 값과 _id 색인의 해당 키가 두 배로 작아집니다. http://www.mongodb.org/display/DOCS/Optimizing+Object+IDs - - http://www.mongodb.org/display/DOCS/Object+IDs

:

여기에 당신을 도울 수 2 개 링크입니다

2

ObjectId을 사용하면 _id이 모든 컴퓨터에서 고유 한 값으로 생성됩니다. 따라서 Sharding을 사용하면 _id 충돌에 대해 걱정할 필요가 없습니다. ObjectId의 생성 방법보기 specification
그러나 문자열을 사용하는 경우주의해서 생성해야합니다.

관련 문제