Golang 構造の "omitempty" を使用して MongoDB 更新で空の値を処理する方法
はじめに
「omitempty」フィールドを含む Golang 構造により、選択した JSON 値をマッピングできます空の値を持つフィールドを除き、構造に追加します。ただし、空の値がデータベースに反映されない可能性があるため、MongoDB ドキュメントを更新するときに問題が発生する可能性があります。
問題
「omitempty」を含む構造体を使用する場合JSON フォーム値をマップするためのフラグ。空のフィールドは無視されます。これにより、MongoDB でドキュメントを更新するときに問題が発生します。
要件
空の値または更新された値を MongoDB に保存する機能を維持しながら、「omitempty」フラグを維持することは、柔軟で堅牢な更新に不可欠です。 process.
解決策
この問題を解決するには、構造内の影響を受けるフィールドをポインタに変換します。
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"` }
次のようにします。
ポインタを使用する、「omitempty」動作を維持しながら、MongoDB 更新で空の値と更新された値の両方を柔軟に処理できるようにします。
以上がGolang の `omitempty` を使用して MongoDB 更新で空の値を保持する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。