我想要这样的东西:
在 mongo db 中找到一条记录 old_record
将此记录更新为 new_record
返回 old_record
我写这样的代码:
ret = nil
// First, Find the obj
obj := &orm.QuerySetObj{}
err2 := this.querySetCollection.With(session).Find(objKey).One(obj)
if nil != err2 {
this.logger.Println("Error find obj")
return
}
ret = obj
// Then, update this obj
obj.updateTime = time.Now().Unix()
err3 := this.querySetCollection.With(session).Upsert(objKey, obj)
if nil != err3 {
this.logger.Println("Error update obj")
return
}
return
但是,我认为find并且update应该是一个atomic操作,所以我的代码并不安全。
我怎样才能在原子操作中做到这一点
翻过高山走不出你
相关分类