亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

findOneAndUpdate(updateQuery, updateSet,)

findOneAndUpdate(updateQuery, updateSet,)

Go
千巷貓影 2023-07-17 16:22:11
我想更新數據庫中的一些字段,并希望它返回一些字段,你能建議如何檢索返回字段嗎?所以我在這里使用,returnFields := map[string]interface{}{"order_id":1} data := FindAndUpdateVerticalsOffers(updateQuery, updateFields, returnFields)如何從“data”獲取order_id:func FindAndUpdateVerticalsOffers(updateQuery map[string]interface{}, updateFields interface{}, returnFields map[string]interface{}) map[string]interface{} {    session := db.GetSession()    defer session.Close()    collection := session.DB("").C(VerticalsOffersName)    updateSet := bson.M{"$set": updateFields}    return collection.FindOneAndUpdate(updateQuery, updateSet, returnFields)}
查看完整描述

1 回答

?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

我想更新數據庫中的一些字段并希望它返回一些字段,

如果您使用mongo-go-driver(當前為 v1.1),您可以使用FindOneAndUpdate()來查找單個文檔并更新它,返回原始文檔或更新后的文檔。

該方法接受FindOneAndUpdateOptions的參數,它支持投影。例如:

collection := client.Database("dbName").Collection("collName")


// Sets projection (or return fields)

findUpdateOptions := options.FindOneAndUpdateOptions{}

findUpdateOptions.SetProjection(bson.M{"order_id": 1})


result := collection.FindOneAndUpdate(context.TODO(),?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? bson.M{"foo":1},?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? bson.M{"$set": bson.M{"bar":1}},?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? &findUpdateOptions)


doc := bson.M{}

err = result.Decode(&doc)

上面的查詢將匹配字段foo為 1 的文檔,將字段更新為 1,并僅作為結果bar返回。order_id請注意,默認情況下_id也會返回該字段。您可以通過將_id 字段設置為 0 來禁止投影。

請注意,返回類型FindOneAndUpdate是SingleResult對象,它表示從操作返回的單個文檔。如果操作返回錯誤,則ErrSingleResult 的方法將返回該錯誤。


查看完整回答
反對 回復 2023-07-17
  • 1 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號