如何更新多个MongoDB字段

时间:2019-07-08 03:21:21

标签: mongodb go

我对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}},
    }

第一个删除第一组中的注释。第二次尝试的语法无效,请删除第二组注释。语法无效。

我很茫然。为了继续前进,我正在进行两次更新,一次又一次。效率低下。

谢谢。

2 个答案:

答案 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函数