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

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

Golang MongoDB 增量整數值

Golang MongoDB 增量整數值

Go
藍山帝景 2022-06-13 17:34:41
我正在使用這個官方圖書館https://github.com/mongodb/mongo-go-driver這是我在 MongoDB 中的文檔之一{    "_id": "5f0ebe6dfcee0f34c64b23b0",    "userID": "user A",    "unread": 1,    "projectID": 2}問題是我想增加(也可能減少)“未讀”字段我嘗試過使用“$inc”,它變成了這樣{    "_id": "5f0ebe6dfcee0f34c64b23b0",    "userID": "user A",    "unread": {        "$incr": 1,    },    "projectID": 2}我認為會有兩個條件文檔已經存在文檔尚不存在如果我正在使用UpdateOne,或者UpdateMany如果文檔尚不存在,它將再次成為問題幫助我解決這個問題的人將不勝感激謝謝你,干杯^^
查看完整描述

3 回答

?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

我得到了答案。所以我做了這樣的代碼


_, err = m.db.Collection("inbox_counter").UpdateOne(ctx, bson.M{

    "userID":    v.UserID,

    "projectID": v.ProjectID,

}, bson.D{

    {"$inc", bson.D{{"unread", 1}}},

}, options.Update().SetUpsert(true))

if err != nil {

    log.Println(err)

    return err

}

我正在使用 UpdateOne,因為每個用戶和項目 ID 只有一個文檔


您可以使用運算符$inc來增加值


感謝@Gibbs 推薦我使用upsert


查看完整回答
反對 回復 2022-06-13
?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

您必須使用upsert- 如果存在其他插入,它將更新。


db.collectionName.update(

   { item: "ZZZ135" },   // Find query 

   {

     "$set":{                     // Update document

      item: "ZZZ135",

      stock: 5,

      tags: [ "database" ]

     }

   },

   { upsert: true }      // Option

)


查看完整回答
反對 回復 2022-06-13
?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

db.getCollection('table_name').update(

   { "key": "value" },   // Find query 

   {

     "$set":{                     // Update document

         "key": value

     },

    "$setOnInsert":{                     // Addd on Insert only

         "key1": value

     },

     "$inc": {

         "numberKey": 1 // Increment unread Or To decrement use -1

      }

   },

   { upsert: true } 

);


查看完整回答
反對 回復 2022-06-13
  • 3 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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