当键包含大写字母时无法使用 mgo 检索值

Can not retrieve value using mgo when the key contains uppercase

来自mongoDB的一个数据是

{
    "_id" : ObjectId("5536def4e4b0644323e219a8"),
    "title" : "The Title",
    "description" : "The Description",
    "timeStamp" : "21/04/2015",
    "category" : "news",
    "url" : "http://www.example.com",
    "source" : "Evening Times",
    "mainStory" : "This is the main story."
}

在我的代码中,结构是

type NewsData struct {
    Title       string `bson: "title" json: "title"`
    TimeStamp   string `bson: "timeStamp" json: "timeStamp"`
    Description string `bson: "description" json: "description"`
    MainStory   string `bson: "mainStory" json:"mainStory"`
}

然后我用下面的代码提取信息

err = conn.Find(nil).Select(bson.M{"title": 1, "timeStamp": 1, "description": 1, "mainStory": 1}).All(&result)

但是,当我打印出result时,timeStampmainStory的值是空的。我查了资料,说mgo把key当作小写,所以当mongoDB里的key是大写的时候,就出问题了。

我该如何解决这个问题?

字段标记中存在语法错误。删除字段标记中 ':' 和 '"' 之间的 space。

TimeStamp   string `bson:"timeStamp" json:"timeStamp"`

字段标签的语法很严格。

除了这个问题,你应该添加

ID bson.ObjectId `bson:"_id"` 

应用程序可以访问对象 ID 的结构。