第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何使用golang在mongodb中findAndModify一條記錄?

如何使用golang在mongodb中findAndModify一條記錄?

Go
九州編程 2021-11-01 10:51:39
我想要這樣的東西:在 mongo db 中找到一條記錄 old_record將此記錄更新為 new_record返回 old_record我寫(xiě)這樣的代碼:ret = nil// First, Find the objobj := &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 objobj.updateTime = time.Now().Unix()err3 := this.querySetCollection.With(session).Upsert(objKey, obj)if nil != err3 {    this.logger.Println("Error update obj")    return}return但是,我認(rèn)為find并且update應(yīng)該是一個(gè)atomic操作,所以我的代碼并不安全。我怎樣才能在原子操作中做到這一點(diǎn)
查看完整描述

1 回答

?
翻過(guò)高山走不出你

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊

這里的方法是.Apply()采用Change類(lèi)型并返回ChangeInfo。


文檔中的直接示例:


change := mgo.Change{

        Update: bson.M{"$inc": bson.M{"n": 1}},

        ReturnNew: false,

}

info, err = col.Find(M{"_id": id}).Apply(change, &doc)

fmt.Println(doc.N)

哪里doc是被發(fā)現(xiàn)的文件,并根據(jù)價(jià)值它的狀態(tài)ReturnNew在Change爭(zhēng)論,是false要將原來(lái)的文檔。


基本上所有參數(shù)的形式都與 .findAndModify()


查看完整回答
反對(duì) 回復(fù) 2021-11-01
  • 1 回答
  • 0 關(guān)注
  • 325 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)