私はこのようなものが欲しい:
- mongo dbで1つのレコードを見つける
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
アトミック操作でこれを行うにはどうすればよいですか