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

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

Patricia Arquette
发布: 2024-11-17 07:50:03
原创
406 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板