如何使用Go更新Mongodb中的数组字段

时间:2017-04-11 09:19:33

标签: mongodb go mongodb-query bson

我想将stu1更改为stu3

import (
    "gopkg.in/mgo.v2"
    "gopkg.in/mgo.v2/bson"
)
type Student struct {
    Name string `bson:"name"`
    Age  string `bson:"age"`
}
type Class struct {
    Id      string    `bson:"_id"`
    Student []Student `bson:"student"`
}

col := mongosession.DB("test").C("class")

stu1 := Student{"jack", "18"}
stu2 := Student{"rose", "16"}
class := Class{Id: "123", Student: []Student{stu1, stu2}}
col.Insert(class)

stu3 := Student{"lisi", "14"}

如何进行更新?它是否像以下

col.Update(bson.M{"_id": "123"},
            bson.M{"$set": bson.M{"student": ??????}})

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

您可以使用$set运算符和dot notation

err := col.Update(
  bson.M{"_id": "123"},
  bson.M{
    "$set": bson.M{
      "student.0": &stu3
    }
})