我正在查詢一個包含整數值的集合,并將生成的文檔加載到此結構中: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,這使我感到 困惑??梢詸z索其他所有值。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 關注
- 326 瀏覽
添加回答
舉報
0/150
提交
取消