gpt4 book ai didi

go - 无法让 FindId 工作(GO + MGO)

转载 作者:IT王子 更新时间:2023-10-29 01:22:18 26 4
gpt4 key购买 nike

不确定这里发生了什么......但我正在努力完成一个简单的操作。我是 GO 的新手(试图从 Node 切换)所以它可能是一个 Type 的东西......

User struct {
ID_ bson.ObjectId `bson:"_id,omitempty" json:"_id,omitempty"`
UTC time.Time `bson:"utc,omitempty" json:"utc,omitempty"`
USR string `bson:"usr,omitempty" json:"usr,omitempty"`
PWD string `bson:"pwd,omitempty" json:"pwd,omitempty"`
}
func save(w http.ResponseWriter, r *http.Request) {
m := s.Copy()
defer m.Close()
user := m.DB("0").C("user")
var a User
json.NewDecoder(r.Body).Decode(&a)
err := user.FindId(a.ID_)
if err != nil {
panic(err)
}
}

这会返回以下错误

http: panic serving [::1]:53092: &{{0 0} 0xc208062600 {{0.user [{_id TE?????}] 0 0 ?
reflect.Value? 0 <nil> {?reflect.Value? ?reflect.Value? ?reflect.Value? false false [] 0}
false []} 0.25 0}}

当我运行时:

a.ID_.Valid()

我得到“真”。

附言。我可以让它工作:

func user(w http.ResponseWriter, r *http.Request) {
m := s.Copy()
defer m.Close()
user := m.DB("0").C("user")
a := &User{ID_:bson.NewObjectId(), UTC:time.Now()}
b, _ := json.Marshal(a)
user.Insert(a)
}

非常感谢任何帮助。

最佳答案

FindId方法返回 Query ,不是错误。调用查询 One获取文档的方法。

关于go - 无法让 FindId 工作(GO + MGO),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26477029/

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