首页 > 后端开发 > Golang > 为什么使用 go-couchdb 在 CouchDB 中仅更新大写的结构字段?

为什么使用 go-couchdb 在 CouchDB 中仅更新大写的结构字段?

Mary-Kate Olsen
发布: 2024-12-05 05:01:45
原创
1000 人浏览过

Why Are Only Capitalized Struct Fields Updated in CouchDB Using go-couchdb?

大写影响 CouchDB 结构中的数据存储

使用“github.com/mikebell-org/go-couchdb”库访问时CouchDB,出现一个奇怪的问题:只有首字母大写的结构字段才会在数据库中更新

示例:

type Person struct {
    name string
    Age  int
}
登录后复制

将 Person 实例插入数据库时​​:

joe := Person{
    name: "mike",
    Age:  190,
}
登录后复制

仅将 Age 字段添加到数据库。其他小写字段,如名称,将被省略。

行为背后的原因:

此行为源于 Go 语言规范,该规范规定首字母小写的字段信件不会被导出。因此,JSON 序列化包(例如 json)仅在明确指示的情况下包含这些字段。

克服问题:

合并小写字段进入数据库,利用 JSON 标签:

type Person struct {
    name string `json:"name"`
    Age  int    `json:"Age"`
}
登录后复制

通过指定 json 标签,显式暴露小写名称字段用于 JSON 序列化,允许其持久保存在数据库中。有关 JSON 标签的更多详细信息,请参阅文档。

以上是为什么使用 go-couchdb 在 CouchDB 中仅更新大写的结构字段?的详细内容。更多信息请关注PHP中文网其他相关文章!

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