Golang / mgo:无法从MongoDB文档中检索int字段的值

我正在查询一个包含整数值的集合,并将生成的文档加载到此结构中:


type Subscription struct {

    Id bson.ObjectId "_id,omitempty"

    Listen string

    Job string

    TimeoutSeconds int

    Data string

}



var subscription Subscription


subscriptions := subscriptionsCol.Find(bson.M{"listen": "example_channel"}).Iter()

for subscriptions.Next(&subscription) {

    log("Pending job: %s?%s (timeout: %d)\n",

            subscription.Job, 

            subscription.Data, 

            subscription.TimeoutSeconds)

}

这是phpMoAdmin向我显示的内容:


[_id] => MongoId Object (

    [$id] => 502ed8d84eaead30a1351ea7

)

[job] => partus_test_job_a

[TimeoutSeconds] => 30

[listen] => partus.test

[data] => a=1&b=9

subscription.TimeoutSeconds当我肯定我包含30在集合中的文档中时,总是包含0,这使我感到 困惑。


可以检索其他所有值。


int类型有什么问题?


繁星coding
浏览 291回答 2
2回答

万千封印

您是否尝试过为该字段设置“键”值?统帅小写的字段名称用作每个导出字段的键,但是可以使用相应的字段标签来更改此行为。type Subscription struct {    Id              bson.ObjectId    "_id,omitempty"    Listen          string    Job             string    TimeoutSeconds  int     "TimeoutSeconds"    Data            string}其他字段正常工作,因为它们的小写字母值与集合中您的Mongo字段匹配,而TimeoutSeconds正在使用TitleCase。发生的事情是int字段保留为零值,因为Unmarshal无法将字段映射到它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go