无法使用 golang 将结构保存到 mongodb(仅创建空记录)

Cannot save structure into mongodb with golang (only empty records created)

我有以下结构

type Result struct {
    nid         string
    timestamp   int64
    hexhash     string
    addr        string
}

我想保存到 mongodb:

我创造了它

r := Result{hex_id, int64(msg.timestamp.Unix()), hexhash, msg.addr.String()}

并测试是否创建正确:

fmt.Println(r) 

这给了我预期的结果:

{b8da3f19d1318af6879976c1eea66c78c48e1144 1421417252 65072917F19D7F4C4B54C9C66A3EB31F77012981 127.0.0.1:65290}

然后我存入mongo:

h.c.Insert(r)

但在 mongo 中我只看到空记录:

db.data.find()

{ "_id" : ObjectId("54b91a268da6c829a412cd4d") }

上面代码中的h定义为

type Handler struct {
    storage     map[string]Message
    new_msg     chan Message
    new_inp     chan Input
    c           *mgo.Collection
}

h.c = session.DB(DATABASE).C(COLLECTION)

您的记录字段需要 public 才能让其他包(如 MongoDB 包装器)看到它们。像这样重命名字段:

type Result struct {
    Nid         string
    Timestamp   int64
    Hexhash     string
    Addr        string
}