首页  >  文章  >  后端开发  >  如何在 Golang 中将一个结构嵌入到另一个结构中以用于 MongoDB 的仅管理请求?

如何在 Golang 中将一个结构嵌入到另一个结构中以用于 MongoDB 的仅管理请求?

Patricia Arquette
Patricia Arquette原创
2024-11-17 07:50:03334浏览

How to Embed a Struct in Another Struct in Golang for Admin-Only Requests with MongoDB?

在 Golang MongoDB 中将一个结构嵌入到另一个结构中

在这种情况下,当用户对用户资源发出 GET 请求时,仅相关字段以 JSON 形式返回。具体来说,Secret 字段由于其 json:"-" 而被排除。但是,对于仅限管理员的请求,需要返回机密字段。

为管理员请求复制 User 结构并不理想。以下解决方案尝试将 User 嵌入到 adminUser 中:

type adminUser struct {      
  User
  Secret  string        `json:"secret,omitempty" bson:"secret,omitempty"`
}

但是,此实现仅返回 Secret 字段,这不是所需的行为。要达到所需的结果,请利用 bson 包的内联标志:

type adminUser struct {
    User `bson:",inline"`
    Secret string `json:"secret,omitempty" bson:"secret,omitempty"`
}

请注意,如果 adminUser 和 User 都包含 Secret 密钥,则从数据库读取时可能会导致重复密钥错误。

另一种方法是从 User 中删除 Secret 字段,只将其包含在 adminUser 中。这可确保写入机密字段仅限于管理员用户。

以上是如何在 Golang 中将一个结构嵌入到另一个结构中以用于 MongoDB 的仅管理请求?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn