如何在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中文網其他相關文章!