mysql - 使用运算符 IN 的 Golang MongoDB 更新查询
问题描述
我想要的成就是在 MySQL 中这样的查询
UPDATE FROM inbox
SET unread = unread + 1
WHERE
projectID = ? AND
userID IN ("A", "B, "C")
MongoDBIN
在 MySQL 中有类似的查询吗?
我已经在 Go 中尝试过使用https://github.com/mongodb/mongo-go-driver
_, err = m.db.Collection("inbox_counter").UpdateMany(ctx, bson.M{
"userID": bson.D{{"$in", userIDs}},
"projectID": e[0].ProjectID,
}, bson.D{
{"$inc", bson.D{{"unread", 1}}},
}, options.Update().SetUpsert(true))
但这对我的收藏没有影响
解决方案
使用bson.M{"$in": userIDs}
代替bson.D{{"$in", userIDs}}
过滤器和更新使用bson.M{"$inc": bson.M{"unread": 1}}
代替bson.D{{"$inc", bson.D{{"unread", 1}}}}
_, err = m.db.Collection("inbox_counter").UpdateMany(ctx, bson.M{
"userID": bson.M{"$in": userIDs},
"projectID": e[0].ProjectID,
},bson.M{"$inc": bson.M{"unread": 1}}, options.Update().SetUpsert(true))
推荐阅读
- php - php - 如何执行 sqlsrv 存储过程
- sql-server - 在 SQL Server 中获取特定年份中的列作为月份名称
- python - 尝试填充 SQlite 数据库时在 Python 中返回“KeyError:”
- c# - 当主数据上下文不同时,如何将另一个数据上下文设置为数据网格上的特定列(其内容)?
- android - 循环中的 RadioListTile Flutter
- ruby-on-rails - 如何在 Rails 5.2 中的部分渲染类/控制器特定的翻译?
- java - 如何在硬盘上多次保存文件而不损坏硬盘?
- c# - C# Winform - 如何将我的对象的枚举属性绑定到 DataGridView 的组合框?
- android - 在MarkerClickListener 上显示警报对话框
- azure - ADF 管道计划信息