gpt4 book ai didi

mongodb - 通过 mgo v2(golang、mongoDB)更新结构的数组元素

转载 作者:数据小太阳 更新时间:2023-10-29 03:19:17 27 4
gpt4 key购买 nike

我有这样的结构:

type Meet struct {
Title string `json:title`
Time time.Time `json:time`
Host string `json:host`
Crowd []string `json:crowd`
Geo Location `json:location`
Invoice []Bill `json:invoice`
}

type User struct {
ID bson.ObjectId `json:"id" bson:"_id,omitempty"`
Name string `json:name`
Phone string `json:phone`
Email string `json:email`
Vc string `json:vc`
Status int8 `json:status`
Avatar string `json:avatar`
FriendList []bson.ObjectId `json:friendlist`
Meetings []Meet `json:meetings`
Requests []Request `json:request`
}

并希望更新 session 发票(例如:User.Meetings[0].Invoice)我的代码是这样的:

        query := bson.M{
"_id": bson.ObjectIdHex(personId),
"Meetings.Title": Title,
"Meetings.Geo": Geo,
}
update := bson.M{
"$set": bson.M{
"Meetings.$.Invoice": updateInvoice,
},
}

updateErr = collection.Update(query, update)

我得到的只是未找到错误。评论 Meetings.Geo 没有帮助并导致相同的原因。未找到。这是我的查询有问题还是什么?

最佳答案

查询中的字段应该是 meetings.title 和 meetings.geo。我刚刚用我的一个数据库测试了它,字段的大小写很重要。在您的更新中, session 应该是 session 。名称取自结构项标签名称而不是结构项名称。例如

struct test {
ID bson. bson.ObjectId `bson:"_id"`
TestString string `bson:"ts"`
Amount int `bson:"am"`
}

query := bson.M{"ts": "test", "am": 2}

您不能对 _id 进行省略,因为 _id 字段必须存在。

关于mongodb - 通过 mgo v2(golang、mongoDB)更新结构的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56498672/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com