首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Golang内部结构中使用omitempty标志更新Mongodb字段

如何在Golang内部结构中使用omitempty标志更新Mongodb字段
EN

Stack Overflow用户
提问于 2020-11-16 11:29:03
回答 1查看 42关注 0票数 0
代码语言:javascript
复制
//...
type UserInfo struct {
    OpenId    string `json:"openId,omitempty"`
    UnionId   string `json:"unionId,omitempty"`
    NickName  string `json:"nickName"`
    AvatarUrl string `json:"avatarUrl"`
    Gender    int8   `json:"gender"`
    Province  string `json:"province"`
    City      string `json:"city"`
    Country   string `json:"country"`
}

type User struct {
    Id          primitive.ObjectID `json:"_id,omitempty" bson:"_id,omitempty"`
    CreatedAt   string             `json:"createdAt" bson:"createdAt"`
    Openid      string             `json:"openid" bson:"openid,omitempty"`
    PhoneNumber string             `json:"phoneNumber,omitempty" bson:"phoneNumber,omitempty"`
    UserInfo    UserInfo           `json:"userInfo,omitempty" bson:"userInfo,omitempty"`
    Status      bool               `json:"status" bson:"status,omitempty"`
}
//...
res, err := collection.InsertOne(context.Background(), user)
//...

UserInfo也是一个结构。在插入之后显示在图像中。

enter image description here

UserInfo字段为空时,我不需要它。我该怎么办?谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2020-11-16 17:19:47

解决方案是将*添加到表示pointer.Jus的innerStruct类型中,如下所示:

代码语言:javascript
复制
//...
type UserInfo struct {
    OpenId    string `json:"openId,omitempty"`
    UnionId   string `json:"unionId,omitempty"`
    NickName  string `json:"nickName"`
    AvatarUrl string `json:"avatarUrl"`
    Gender    int8   `json:"gender"`
    Province  string `json:"province"`
    City      string `json:"city"`
    Country   string `json:"country"`
}

type User struct {
    Id          primitive.ObjectID `json:"_id,omitempty" bson:"_id,omitempty"`
    CreatedAt   string             `json:"createdAt" bson:"createdAt"`
    Openid      string             `json:"openid" bson:"openid,omitempty"`
    PhoneNumber string             `json:"phoneNumber,omitempty" bson:"phoneNumber,omitempty"`
    UserInfo    *UserInfo           `json:"userInfo,omitempty" bson:"userInfo,omitempty"`
    Status      bool               `json:"status" bson:"status,omitempty"`
}
//...
res, err := collection.InsertOne(context.Background(), user)
//...

现在在插入mongodb或json.Marshal().Hope时,将省略UserInfo,这对其他人帮助不大:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64852334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档