登录
首页 >  Golang >  Go问答

使用 Golang 进行 MongoDB 查询时的 IN 运算符更新

来源:stackoverflow

时间:2024-03-15 09:00:28 102浏览 收藏

一分耕耘,一分收获!既然都打开这篇《使用 Golang 进行 MongoDB 查询时的 IN 运算符更新》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golang相关的内容,希望对大家都有所帮助!

问题内容

我想要得到的成就是在 mysql 中进行这样的查询

update from inbox
set unread = unread + 1
where
projectid = ? and
userid in ("a", "b, "c")

mongodb 是否有像 mysql 中那样的查询 in

我已经在 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))

理论要掌握,实操不能落!以上关于《使用 Golang 进行 MongoDB 查询时的 IN 运算符更新》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>