3 回答

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

TA貢獻1828條經驗 獲得超6個贊
您必須使用upsert- 如果存在其他插入,它將更新。
db.collectionName.update(
{ item: "ZZZ135" }, // Find query
{
"$set":{ // Update document
item: "ZZZ135",
stock: 5,
tags: [ "database" ]
}
},
{ upsert: true } // Option
)

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 }
);
- 3 回答
- 0 關注
- 194 瀏覽
添加回答
舉報