2012-06-27 4 views
0

컬렉션에 전역 자동 증가 값을 만드는 방법이 있습니까?MongoDb의 전역 자동 증가 필드

PERFORCE는 상태 저장 업데이트를위한 강력한 기능이 될 수있는 변경 목록 개념을 가지고 있습니다. 나는 같은 유형의 기능을 생각하고있다.

예 :

create> DocA.name = "foo" => changelist = 1 
create> DocB.name = "bar" => changelist = 2 
update> DocA.name = "bob" => changelist = 3 
create> DocC.name = "joe" => changelist = 4 

결과 :

DocA.changelist = 3 
DocB.changelist = 2 
DocC.changelist = 4 

그럼 내가 변경 목록 후 변경 사항을 검색 할 수 있습니다 : 4 내가 아무것도 놓치지 않았다 확신합니다.

효율적으로 그렇게하는 방법에 관한 mongodb 전문가의 의견은 무엇입니까?

답변

1

MongoDB 문서에는 auto-incrementing fields의 목록이 있습니다. 일반적으로 나쁜 습관이지만 이것은 당신이 추구하는 기능을 위해 작동 할 수 있습니다.

즉, 나는 사람들이 마지막으로 업데이트 된 시간에 "타임 스탬프"를 사용하는 것을 보았습니다. 이것은 귀하의 요구 사항을 충족시킬 수 있습니다.

이와 같이 정말로 중요한 기능인 경우 Riak의 MVCC를보고 싶을 수도 있습니다.

+0

응답 해 주셔서 감사합니다. 타임 스탬프에는 항상 잠재적 인 충돌이 마이크로 초 정도로 문제가되어 문제가됩니다. 그러나 타임 스탬프에 추가 된 카운터를 $ INC에 대한 보조 컬렉션을 사용할 수 있다는 생각이 들었습니다. 자동 증분 필드 기사는 오히려 못 생겼습니다. – darren

+0

흠, 당신이 MVCC의 어떤 형태를 필요로하는 것처럼 들린다. MongoDB와 어떻게 결혼했는지 모르겠다. Riak를 보길 원할지도 모른다. 자동 증가 기사에 관해서는 간단하지가 않다. 왜냐하면 그것은 추천하지 않았기 때문입니다. –

+0

나는 Riak에 관해 당신이 의미하는 것을 보았습니다, 그러나 나는 여전히 증가하는 수치를 제공하지 않는다고 생각합니다. "변경 목록"이 증가함으로써 마지막으로 확인한 이후 컬렉션에서 변경된 내용을 쉽게 찾을 수 있습니다. vclock은 해시 기반이며 업데이트 및 동기화 충돌 해결에 더 많이 사용됩니다. – darren