3 回答

TA貢獻1801條經驗 獲得超8個贊
我認為問題可能是您的 UserResp 結構具有私有成員。
//Instead of
users []string `json:"users" bson:"users"`
// Try
Users []string `json:"users" bson:"users"`

TA貢獻1824條經驗 獲得超6個贊
users
沒有出口,應該是Users
。您不需要指向指針的指針,我個人只是使用
var result UserResp
.
以下更正:
type UserResp struct {
Users []string
}
var result UserResp
err := coll.Find(bson.M{"id": depID}).Select(bson.M{"users": 1}).One(&result)
如果這些不是問題,那么我在處理 BSON 和數組/切片時遇到了很多問題。您可以嘗試制作Users一個界面,或者將整個輸出寫入 bson.M 映射 ( map[string]interface{}) 并從那里開始。我會這樣做:
var result bson.M
err := coll.Find(bson.M{"id": depID}).Select(bson.M{"users": 1}).One(&result)
您可以使用類型斷言訪問基礎數據:
result["users"].([]string)
如果這不起作用,只需檢查底層數據以調試返回的類型:
fmt.Printf("%+v", result)
無論哪種方式,一旦你像這樣在 Go 中擁有數據。調試起來會容易得多。
- 3 回答
- 0 關注
- 263 瀏覽
添加回答
舉報