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 关注
- 226 浏览
添加回答
举报