복붙노트

[MONGODB] MongoDB의 사용자 정의 개체 ID 만들기

MONGODB

MongoDB의 사용자 정의 개체 ID 만들기

내가 스토리지 백엔드로하여 MongoDB를 사용하는 서비스를 만드는 오전. 이 서비스는 사용자 입력의 해시를 생성하고 동일한 해시 (+ 입력)가 이미 세트에 존재하는 경우 다음을 참조한다.

해시 고유 아직 무작위로 될 것입니다 (= 비 증분 / 연속), 내 질문은 그래서 :

$ 한 object_id = 새로운 MongoId (HEX-OF-96BIT-HASH);

"진짜가"도 등 타임 스탬프, machine_id를 포함 OBJECTID 이후 또는 MongoDB를은 다른 서버 생산 된 것들과 다르게 ObjectId가 취급 할 것인가?

는 '임의'값을 사용의 장점과 단점은 무엇입니까? 나는 그것이 새로운 _id 년대는 어떤 방식으로 증가하지 않을 때 삽입에 인덱스를 업데이트 할 수있는 엔진 통계적으로 느린 것 같아요 - 내가 그에 수정입니까?

해결법

  1. ==============================

    1.예는 어떤 값이 저장되는 문서의 _id 필드에 존재하는 경우, 오브젝트 ID의 임의의 값을 사용하여 완벽 괜찮지 그것은 OBJECTID로 처리된다.

    예는 어떤 값이 저장되는 문서의 _id 필드에 존재하는 경우, 오브젝트 ID의 임의의 값을 사용하여 완벽 괜찮지 그것은 OBJECTID로 처리된다.

    _id 필드가 항상, 그리고 기본 키를 색인하고 있기 때문에, 당신은 확실히 다른 OBJECTID 각 개체에 대해 생성되는 것을 확인해야합니다. 최적화 된 사용자 정의 개체 ID에 대한 몇 가지 지침이 있습니다 :

    https://docs.mongodb.com/manual/core/document/#the-id-field.

  2. ==============================

    2.해시를 포함한 모든 값,의 _id 필드에 사용할 수 있지만, 나는 두 가지 이유로 임의의 값을 사용하여에 추천 할 것입니다 :

    해시를 포함한 모든 값,의 _id 필드에 사용할 수 있지만, 나는 두 가지 이유로 임의의 값을 사용하여에 추천 할 것입니다 :

  3. ==============================

    3.난 그냥 인덱싱 성능에 대한 내 질문에 대한 답변을 발견 :

    난 그냥 인덱싱 성능에 대한 내 질문에 대한 답변을 발견 :

    출처 : http://www.mongodb.org/display/DOCS/Optimizing+Object+IDs

  4. ==============================

    4.그것은 좋은 또는 나쁜 그것의 고유성에 달려있다. 물론 ObjectId가이 MongoDB에 의해 제공이 좋은 일이다, 그래서 아주 독특합니다. 그래서 당신이 그 고유성을 복제 할 수있는 당신은 괜찮을 것이다.

    그것은 좋은 또는 나쁜 그것의 고유성에 달려있다. 물론 ObjectId가이 MongoDB에 의해 제공이 좋은 일이다, 그래서 아주 독특합니다. 그래서 당신이 그 고유성을 복제 할 수있는 당신은 괜찮을 것이다.

    더 본질적인 위험이 없습니다 / 성능은 자신의 ID를 사용하여 잃는다. 나는 더 많은 인덱스 / 저장 / 조회 전원을 사용할 수있는 문자열 형식에서 사용 추측하지만 당신은 간단한 문자열에 저장하지의 장점을 유지해야한다 (ObjectId가) 형태 MongoID에서이 사용하고 있습니다.

  5. from https://stackoverflow.com/questions/12211138/creating-custom-object-id-in-mongodb by cc-by-sa and MIT license