2016-06-29 2 views
1

그래서 문제가 있으며 문제를 해결하는 방법에 대해 몇 가지 단서가 있습니다. 어느 것이 실제로 작동하는지, 어떻게 실행 하는지를 알아내는 데 도움이 필요합니다.MongoDB에 삽입하고 ObjectID를 저장 하시겠습니까?

GoLang에서 프로그래밍 중이며 mgo 패키지를 사용하여 MongoDB와 상호 작용합니다. 기본 레벨에서, 나는 Mongo의 콜렉션에 엔트리를 삽입하고 그 엔트리의 ObjectID에 접근 할 필요가있다.

내 첫 번째 솔루션은 방금 삽입 한 모든 데이터와 일치하는 항목을 검색하는 것이지만 중복이있을 수 있습니다. 나는 정확한 입장을 필요로한다.

둘째, 고유 한 각 항목에 필드를 만들 겠지만 쓸모없는 데이터를 원하지는 않습니다. 동시에이 작업을 실행하고 있습니다.이 작업을 동시에 실행하면 고유 한 작업을 수행 할 때 문제가 발생할 수 있습니다. 야다.

셋째, NewObjectID() 기능이 mgo에 있지만 고유 ID인지 확인하는 방법을 모르겠습니다.

이러한 리드에 잠재력이 있습니까? 아니면 어떻게 해결할 수 있습니까?

답변

1

NewObjectId으로 ID를 만듭니다. bson 패키지는 ID가 고유한지 확인합니다.

id := bson.NewObjectId() 

문서를 삽입하기 전에 ID를 설정하십시오. "_id"라는 이름으로 필드를 저장하십시오.

struct MyDoc { 
    ID bson.ObjectId `bson:"_id"` 
    // other fields 
} 

d := &MyDoc{ID: bson.NewObjectId(), /* set other fields */ } 

if err := c.Insert(d); err != nil { 
    // handle error 
} 

삽입 된 문서의 식별자는 id입니다.

관련 문제