英文:
How to update array's field in Mongodb with Go
问题
我想将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": ??????}})
任何帮助将不胜感激!
英文:
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!
答案1
得分: 0
你可以使用$set
操作符和点符号表示法:
err := col.Update(
bson.M{"_id": "123"},
bson.M{
"$set": bson.M{
"student.0": &stu3,
},
},
)
英文:
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
}
})
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论