这可能是一个非常愚蠢的问题,但在网上搜索了两个小时后,我在这里发布了这个问题。我尝试学习 Go 并有一个非常简单的“Hello World”应用程序,它使用 Mongo 作为数据源。我可以正常连接,我可以获取数据,并且对象的数量还可以。问题是,我将数据映射到的对象具有空属性,尽管 Mongo 中有数据。我在 mongo 中有一个非常简单的集合,称为具有 ~12k 记录的站,如下所示:{ "_id" : ObjectId("563c8d56819c3c91076b7c13"), "nm" : "00000BE8" }{ "_id" : ObjectId("563c8d57819c3c91076b7c1a"), "nm" : "00000C01" }{ "_id" : ObjectId("563c8d58819c3c91076b7c1d"), "nm" : "00000C02" }{ "_id" : ObjectId("563c8d58819c3c91076b7c1f"), "nm" : "00000C31" }{ "_id" : ObjectId("563c8d5d819c3c91076b86c1"), "nm" : "000013E0" }{ "_id" : ObjectId("563c8d5d819c3c91076b86c5"), "nm" : "0000110B" }整个 Go 程序如下所示:package mainimport ( "log" "gopkg.in/mgo.v2")type StationConfig struct { id string `bson:"_id,omitempty"` name string `bson:"nm"`}func main() { session, err := mgo.Dial("192.168.1.41") if err != nil { panic(err) } defer session.Close() c := session.DB("metos").C("stations") var stationConfigs []StationConfig err = c.Find(nil).Limit(100).All(&stationConfigs) if err != nil { log.Fatal(err) } log.Printf("Found document: %+v\n", stationConfigs)}但是当我运行程序时,_id 和 nm 的值没有分配给各自的结构属性,我得到以下输出:Found document: [{id: name:} {id: name:} {id: name:} {id: name:} {id: name:} {id: name:} {id: name:} {id: name:} {id: name:} {id: name:} {id: name:} {id: name:} {id: name:} {id: name:} {id: name:} {id: name:} {id: name:} {id: name:} {id: name:} {id: name:} {id: name:} {id: name:} ... and so on ... ]我错过了什么?
1 回答
一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
我不熟悉 MongoDB Go API,但我认为您的结构字段应该是公开的,以便 MongoDB API 能够填充它们。
尝试公开您的字段,看看它是否有效:
type StationConfig struct {
ID string `bson:"_id,omitempty"`
Name string `bson:"nm"`
}
- 1 回答
- 0 关注
- 163 浏览
添加回答
举报
0/150
提交
取消