duanqiang2977
2017-04-11 09:19
浏览 405

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

I want to change stu1 to 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"}

How do I do the update? Is it like the following

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

Any help will be appreciated!

图片转代码服务由CSDN问答提供 功能建议

我想将 stu1 更改为 stu3

  import(
“ gopkg.in/mgo.v2"
” gopkg.in/mgo.v2/bson"
)
type学生结构{
名称字符串`  bson:“ name”`
年龄字符串`bson:“ age”`
} 
type类结构{
 ID字符串`bson:“ _ id”`
 Student []学生`bson:“ student”`\  n} 
 
col:= mongosession.DB(“ test”)。C(“ class”)
 
stu1:= Student {“ jack”,“ 18”} 
stu2:= Student {“ rose”,“  16“} 
class:=班级{Id:” 123“,学生:[]学生{stu1,stu2}} 
col.Insert(class)
 
stu3:=学生{” lisi“,” 14“} \  n   
 
 

如何进行更新? 是否类似于以下

  col.Update(bson.M {“ _ id”:“ 123”},
 bson.M {“ $ set”:bson.M  {“学生”:??????}})
   
 
 

任何帮助将不胜感激!

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dousiyou1058 2017-04-11 09:27
    已采纳

    You can use the $set operator and the dot notation :

    err := col.Update(
      bson.M{"_id": "123"},
      bson.M{
        "$set": bson.M{
          "student.0": &stu3
        }
    })
    
    已采纳该答案
    打赏 评论

相关推荐 更多相似问题