如何在 Golang 结构中使用“omitempty”处理 MongoDB 更新中的空值
简介
带有“omitempty”字段的 Golang 结构允许将选择性 JSON 值映射到结构,排除具有空值的字段。但是,这可能会在更新 MongoDB 文档时带来挑战,因为空值可能不会反映在数据库中。
问题
使用带有“omitempty”的结构时用于映射 JSON 表单值的标志,空字段将被忽略。这在更新 MongoDB 中的文档时会带来问题:
要求
维护“omitempty”标志,同时保留在 MongoDB 中保存空值或更新值的能力对于灵活和稳健的更新至关重要
解决方案
要解决此问题,请将结构体中受影响的字段转换为指针:
type Coupon struct { Id *int `json:"id,omitempty" bson:"_id,omitempty"` Name string `json:"name,omitempty" bson:"name,omitempty"` Code string `json:"code,omitempty" bson:"code,omitempty"` Description string `json:"description,omitempty" bson:"description,omitempty"` Status *bool `json:"status" bson:"status"` MaxUsageLimit *int `json:"max_usage_limit,omitempty" bson:"max_usage_limit,omitempty"` SingleUsePerUser *bool `json:"single_use_per_user,omitempty" bson:"single_use_per_user,omitempty"` }
这样:
通过使用指针,我们可以灵活地处理 MongoDB 更新中的空值和更新值,同时保留“omitempty”行为。
以上是如何使用 Golang 的 omitempty 保留 MongoDB 更新中的空值?的详细内容。更多信息请关注PHP中文网其他相关文章!