插入MongoDB并存储ObjectID?

时间:2016-06-29 01:07:25

标签: mongodb go mgo

所以我有一个问题,并且有一些关于如何修复它的线索。我需要帮助确定哪一个实际上有效,以及如何执行它。

我在GoLang中编程并使用mgo包与MongoDB进行交互。在基本级别,我需要在Mongo中的集合中插入一个条目,并且还可以访问该条目的ObjectID。

我的第一个解决方案是搜索与我刚刚插入的所有数据匹配的条目,但可能存在重复项。我需要EXACT条目。

其次,我会在每个条目中创建一个独特的字段,但我不想在那里使用无用的数据,而且我也会同时运行此字段,如果我和##会导致问题39;我试图让事情独特的yadda yadda。

第三,NewObjectID()中有一个mgo功能,但我不知道如何确保它是唯一ID。

这些潜在客户中是否有潜力或我还能解决这个问题?

1 个答案:

答案 0 :(得分: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