缺少内联标签的 Golang Mongo DB 嵌入式字段

问题描述 投票:0回答:1

我有一个使用 json 和 bson 标签的结构:

type PlayerGameStats struct {
    Hitting struct {
        Overall  hittingStats `json:"overall,omitempty" bson:"overall,omitempty"`
        SeasonTd struct {
            OBP          float64       `json:"obp,omitempty" bson:"obp,omitempty"`
            OPS          float64       `json:"ops,omitempty" bson:"ops,omitempty"`
            SLG          float64       `json:"slg,omitempty" bson:"slg,omitempty"`
            hittingStats `bson:",inline"`
        } `json:"seasontd,omitempty" bson:"season_td,omitempty"`
    } `json:"hitting,omitempty" bson:"hitting,omitempty"`
}


type hittingStats struct {
    AB     int `json:"ab,omitempty" bson:"ab,omitempty"`
    RBI    int `json:"rbi,omitempty" bson:"rbi,omitempty"`
    AP     int `json:"ap,omitempty" bson:"ap,omitempty"`
    Onbase struct {
        S  int `json:"s,omitempty" bson:"s,omitempty"`
        D  int `json:"d,omitempty" bson:"d,omitempty"`
        T  int `json:"t,omitempty" bson:"t,omitempty"`
        HR int `json:"hr,omitempty" bson:"hr,omitempty"`
        TB int `json:"tb,omitempty" bson:"tb,omitempty"`
        BB int `json:"bb,omitempty" bson:"bb,omitempty"`
        H  int `json:"h,omitempty" bson:"h,omitempty"`
    } `json:"onbase,omitempty" bson:"onbase,omitempty"`
}

当我解组收到的响应时,我在嵌入的

hittingStats
字段中获得了正确的值,但是当我将
PlayerGameStats
插入到我的集合中时,嵌入的字段丢失了。
PlayerGameStats
包含在另一个更高级别的结构中,但我认为这不是问题。

根据我对

inline
标签的理解,它应该“如果字段类型是结构体或映射字段,则该字段在编组时将被展平,而在解组时将被展平。”并且从其他堆栈溢出帖子来看,这似乎是这样应该有效吗?

感谢所有帮助!

我尝试不嵌入字段并使用

inline
标签,但这显然破坏了我需要解组的 json 形式。

mongodb go bson
1个回答
0
投票

我实际上继续调试并意识到解决了问题。

hittingStats
需要导出(`HittingStats)!简单修复,现在可以按预期工作:)

不确定我是否应该将其留在这里或删除它?

© www.soinside.com 2019 - 2024. All rights reserved.