为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
繁星coding 2021-05-04 21:22:37
我正在查询一个包含整数值的集合,并将生成的文档加载到此结构中:type Subscription struct {    Id bson.ObjectId "_id,omitempty"    Listen string    Job string    TimeoutSeconds int    Data string}var subscription Subscriptionsubscriptions := 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=9subscription.TimeoutSeconds当我肯定我包含30在集合中的文档中时,总是包含0,这使我感到 困惑。可以检索其他所有值。int类型有什么问题?
查看完整描述

2 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

您是否尝试过为该字段设置“键”值?

统帅

小写的字段名称用作每个导出字段的键,但是可以使用相应的字段标签来更改此行为。

type Subscription struct {

    Id              bson.ObjectId    "_id,omitempty"

    Listen          string

    Job             string

    TimeoutSeconds  int     "TimeoutSeconds"

    Data            string

}

其他字段正常工作,因为它们的小写字母值与集合中您的Mongo字段匹配,而TimeoutSeconds正在使用TitleCase。发生的事情是int字段保留为零值,因为Unmarshal无法将字段映射到它。


查看完整回答
反对 回复 2021-05-17
  • 2 回答
  • 0 关注
  • 290 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信