为了账号安全,请及时绑定邮箱和手机立即绑定

无法让 FindId 工作(GO + MGO)

无法让 FindId 工作(GO + MGO)

Go
慕田峪9158850 2021-08-23 17:00:40
不知道这里发生了什么......但我有很多时间试图完成一个简单的操作。我是 GO 的新手(试图从 Node 切换)所以它可能是一个类型的东西......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)}任何帮助将不胜感激。
查看完整描述

2 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

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


查看完整回答
反对 回复 2021-08-23
  • 2 回答
  • 0 关注
  • 215 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信