无法让 FindId 工作(GO + MGO)

不知道这里发生了什么......但我有很多时间试图完成一个简单的操作。我是 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)

}

任何帮助将不胜感激。


慕田峪9158850
浏览 216回答 2
2回答

饮歌长啸

该FindId方法返回一个查询,而不是错误。调用 Query&nbsp;One方法来获取文档。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go