我正在查询一个包含整数值的集合,并将生成的文档加载到此结构中: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无法将字段映射到它。
- 2 回答
- 0 关注
- 290 浏览
添加回答
举报
0/150
提交
取消