mongodb - 匿名结构返回空字段值
最近刚上手go开发,发现请求的结构体跟返回的结构体存在个别字段的差异,一开始想着使用匿名结构体方式简化代码,但是发现返回时候mongo在decode时候出现了匿名结构体中的字段全部为空值了。
匿名结构体
type Resource struct {
ObjectId primitive.ObjectID `json:"_id" bson:"_id,omitempty"` //bson是用来创建后返回,omitempty是创建时自动创建
Description string `json:"description" bson:"description" binding:"required"` //资源介绍
DownloadNum int32 `json:"downloadNum" bson:"downloadNum"` //下载数
CollectionNum int32 `json:"collectionNum" bson:"collectionNum"` //收藏数
decode结构体
type ListResource struct {
Administrator []string `json:"administrator" bson:"administrator"`
Resource
}
mongoDB返回结果
{
"_id": "00000000000000",
"description": "",
"downloadNum": 0,
"collectionNum": 0,
"administrator": ["q","p"],
}
经过调整,查看mongo-go-driver
源码:源码 发现原来有inline
属性可以选择。
重新定义decode struct
type ListResource struct {
Administrator []string `json:"administrator" bson:"administrator"`
Resource `bson:",inline"`
}
mongoDB返回结果
{
"_id": "85942hkjhwhkljrwe8er",
"description": "this is a description",
"downloadNum": 1,
"collectionNum": 1,
"administrator": ["q","p"],
}