Golang Go语言中 mongodb-driver 如何更新某个字段
Golang Go语言中 mongodb-driver 如何更新某个字段
type Comment struct {
ID primitive.ObjectID bson:"_id,omitempty" json:"id"
Title string bson:"title" json:"title" binding:"required"
Author string bson:"author" json:"author" binding:"required"
Content string bson:"content" json:"content" binding:"required"
Like int64 bson:"like" json:"like"
Updated time.Time bson:"updated" json:"updated"
}
Collection.FindOneAndUpdate(ctx, filter, update, &opt).Decode(&comment)
比如这里我只传来 {"content": "。。。"} 或者 {"author": "11"} 这一个数据,怎么灵活得接收这个数据和只更新这一个字段?翻了很多文章貌似都是把更新项写死的。
更多关于Golang Go语言中 mongodb-driver 如何更新某个字段的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
10 回复
直接{’$set’:{‘content’: ‘…’}}就行了吧,没涉及的字段不会变
比如说我就单独更新一下个人信息的年龄,或者单独更新性别,不知道该怎么操作
主要是我想能不能单独传一个字段进来,就更新这个字段,而不是所有 required 的字段都要传
接收 bson.M,set bsonM 不行吗
外部传入 map[string]interface{}参数, 内部创建 bson.M,遍历 map[string]interface{}赋值 bson.M, 最后 set bsonM
这种方式可行, 补充一点:不推荐直接使用 map[string]interface{} ,可以考虑从模型 struct 转过来,那样就不用关心数据库里字段名是什么了
也可以
谢谢,看着可行哈哈