mongo-go-driver的update函数可以这样调用。
filter := bson.D{"username", username}
update := bson.D{{"$set",
bson.D{
{"name", person.Name},
},
}}
result, err := collection.UpdateOne(ctx, filter, update)
type Person struct {
ID primitive.ObjectID `json:"_id,omitempty" bson:"_id,omitempty"`
Username string `json:"username,omitempty" bson:"username,omitempty"`
Name string `json:"name,omitempty" bson:"name,omitempty"`
}
但是,我需要使用person
结构调用update函数,而不像这样提及person结构的每个字段。
filter := bson.D{"username", username}
update := bson.D{{"$set", <<how to convert person struct to bson document?>>}}
result, err := collection.UpdateOne(ctx, filter, update)
如何将person结构转换为bson文档?
4条答案
按热度按时间q5iwbnjs1#
ReplaceOne
我想这是你要找的:注意ErrNotFound不再像在mgo中那样抛出-您必须检查Modified/Upserted计数。
pprl5pva2#
你可以这样做:
csga3l583#
如何将person结构编组到bson?
运行:
kkih6yb84#
我想提出一个更直接的方法,涉及一些样板,但结果是一个准确和可扩展的代码。
那么update函数可以是这样的: