2016-06-29 11 views
1

私は問題を抱えており、それを修正する方法についてはいくつかのリードがあります。どの人が実際に働くのか、どのように実行するのかを理解する助けが必要です。MongoDBに挿入してObjectIDを保存しますか?

私はGoLangでプログラミングしており、mgoパッケージを使用してMongoDBとやり取りしています。基本レベルでは、Mongoのコレクションにエントリを挿入し、そのエントリのObjectIDにアクセスする必要があります。

私の最初の解決策は、今挿入したすべてのデータと一致するエントリを検索することですが、重複がある可能性があります。私は正確なエントリが必要です。

第二に、私は一意である各エントリにフィールドを作成しますが、そこに無駄なデータが欲しくないと同時にこれを実行しています。これは問題を引き起こす可能性があります。ヤダ

第3に、にはNewObjectID()という機能がありますが、固有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です。

関連する問題