我对Go的官方MongoDB感到非常沮丧。确实没有文档。我正在尝试更新集合中的多个字段。通常,所有引用都是最简单且更新一个字段:
update := bson.D{bson.E{"$set", bson.E{"releaseimage", r.ReleaseImage}}}
那行得通。我尝试了各种方法来扩展它以设置两个字段并获取错误:
update := bson.D{
{"$set",
bson.E{"releaseimage", r.ReleaseImage},
//bson.E{"releasepath", r.ReleasePath},
},
// {"$set",
// bson.E{
// "releasepath", r.ReleasePath}},
}
第一个删除第一组中的注释。第二次尝试的语法无效,请删除第二组注释。语法无效。
我很茫然。为了继续前进,我正在进行两次更新,一次又一次。效率低下。
谢谢。
答案 0 :(得分:1)
对于多个字段,必须创建bson元素([amir@jump ~]$ ./test3
code: 1, name Name 1
)的数组。然后在数组项中添加/分配任意数量的字段。
bson.E
希望这会有所帮助
答案 1 :(得分:0)
只需这样做
uQuery := make(bson.M)
if len(r.ReleaseImage)>0{
uQuery["releaseimage"]=r.ReleaseImage
}
if len(r.Releasepath)>0{
uQuery["releasepath"]=r.Releasepath
}
updateQ := make(bson.M)
updateQ["$set"] = uQuery
现在只需将'updateQ'与findQuery一起传递给mongodb update Wrapper函数