创建 ObjectId 与让 DB 创建它

我使用 labix mgo 模块作为 Go Mongo 驱动程序。由于 Go 是并发的(和并行的),在应用程序中生成 ObjectId 是否安全还是应该只有数据库才能这样做?


如果.Insert()可以返回就真的很简单了Id。但是这样当我需要它时,有两种方法可以做到这一点:


1) 在客户端生成 ObjectId 并使用它


...

user.ID = bson.NewObjectId()

Users.Insert(user)

// use user.ID normally

2)让数据库生成Id并检索它


...

Users.Insert(user)

Users.Find(user).One(&user)

// user user.ID normally

第二种方法需要 2 个数据库请求和同步插入。


问题是:第一种方法和第二种方法一样安全吗?或者我应该使用什么更好的方法?


湖上湖
浏览 184回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go