登录
首页 >  Golang >  Go问答

匹配模式但不更新数据 - UpdateOne、ReplaceOne、FindOneAndReplace

来源:stackoverflow

时间:2024-03-12 18:48:30 366浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《匹配模式但不更新数据 - UpdateOne、ReplaceOne、FindOneAndReplace》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

我正在使用 mongo go 适配器:github.com/mongodb/mongo-go-driver/

我正在尝试不同的模式,但没有一个适合我。

//引用结构

type userbase struct {
    name  string `bosn:"name"`
    coins int    `bson:"coins"`
}

//参考代码,它正在更新_id,但不更新值

filter := bson.m{"name": "dinamis"}
update := bson.d{{"$inc", bson.m{"coins": 1}}}
db := client.database("nothing").collection("datauser")
db.updateone(context.background(), filter, update)

//更新我也使用过的过滤器

update := bson.d{{"$inc", bson.d{{"coins", 1},}},}

//也尝试过简单的方法

update := &userbase{name, amount} //should i try *userbase{} ?

//我也尝试过

ReplaceOne() 
FindOneAndReplace()
FindOneAndUpdate()

很难深入挖掘,因为实际文档的运气:https://docs.mongodb.com/ecosystem/drivers/go/


解决方案


感谢 @wan bachtiar 在官方 mongodb-go-adapter 小组中回答这个问题。

{ "_id": objectid("..."), "name": "dinamis", "coins": 1 }
collection := client.Database("Nothing").Collection("dataUser")
filter := bson.M{"Name": "Dinamis"}
update := bson.D{{"$inc", bson.M{"Coins": 1}}}
result, err := collection.UpdateOne(context.TODO(), filter, update)

到这里,我们也就讲完了《匹配模式但不更新数据 - UpdateOne、ReplaceOne、FindOneAndReplace》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

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