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 关注
- 237 浏览
添加回答
举报
