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