2011-12-02 3 views

답변

1

그래, 완벽하게 좋아 보인다. ObjectIds는 샤딩을 할 때 유용 할 수 있으며, 타임 스탬프를 제공하고 인덱싱 저장에 더 효율적입니다. 크기가 모두 동일하기 때문입니다. 그러나 응용 프로그램이 로그인을 사용하는 것이 더 합리적이라면 잘 작동합니다.

+0

그러나 타임 스탬프의 해상도는 초 단위이므로 초 고해상도가 필요한 경우 별도의 필드를 사용해야합니다. – christkv

0

로그인이 종종 이메일 주소이기도 한 경우 사용자는 _id으로 사용하면 문제를 일으킬 이메일 주소를 사용자가 변경하게됩니다. 로그인에 이메일 주소를 사용하지 않더라도 사용자가 사용자 이름을 변경할 수 있도록 할 수 있습니다.

그러나 내가 묻는 질문은 대신 _id으로 로그인을 사용하는 데 따른 단점이 있습니다. 표준 ObjectId 필드를 사용하는 데 단점이 있습니까? 대신 로그인을 사용하여 얻고 자하는 것이 무엇입니까?

타일러 브록 (The Tyler Brock)이 답변에서 지적한 것처럼 ObjectId을 사용하면 문서를 만든 MongoDB 인스턴스의 타임 스탬프와 식별자와 같은 ObjectId에 인코딩 된 추가 정보가 있으므로 몇 가지 추가 이점이 있습니다. 언젠가는 유용 할 수도 있습니다.

내 경험에 의하면, 가끔 이있는 경우 그렇지 않으면 정말 좋은 이유가 있습니다. 일반적으로 사용하는 기술의 흐름과 함께가는 것이 좋습니다.

관련 문제