Не удается получить значение с помощью mgo, если ключ содержит верхний регистр

Одни данные из 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, значения timeStamp и mainStory пусты. Я проверил документы, там написано, что mgo принимает ключ в нижнем регистре, поэтому, когда ключ в mongoDB содержит верхний регистр, это будет проблемой.

Как я могу решить эту проблему?


person Wyatt    schedule 30.06.2015    source источник


Ответы (1)


В теге поля есть синтаксическая ошибка. Удалите пробел между «:» и «»» в теге поля.

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

Синтаксис тегов полей неумолим.

Отдельно от этой проблемы, вы, вероятно, должны добавить

ID bson.ObjectId `bson:"_id"` 

к структуре приложение может получить доступ к идентификатору объекта.

person Cerise Limón    schedule 30.06.2015