Wie man mit leeren Werten in MongoDB-Updates mit „omitempty“ in Golang-Strukturen umgeht
Einführung
Golang-Strukturen mit „omitempty“-Feldern ermöglichen die Zuordnung selektiver JSON-Werte in die Struktur, wobei Felder mit leeren Feldern ausgeschlossen werden Werte. Dies kann jedoch zu Herausforderungen beim Aktualisieren von MongoDB-Dokumenten führen, da leere Werte möglicherweise nicht in der Datenbank widergespiegelt werden.
Problem
Bei Verwendung einer Struktur mit „omitempty“ Flag zum Zuordnen von JSON-Formularwerten, leere Felder werden ignoriert. Dies wirft Probleme beim Aktualisieren von Dokumenten in MongoDB auf:
Anforderung
Die Beibehaltung des „omitempty“-Flags bei gleichzeitiger Beibehaltung der Möglichkeit, leere oder aktualisierte Werte in MongoDB zu speichern, ist für ein flexibles und robustes Update unerlässlich Prozess.
Lösung
Um dieses Problem zu beheben, Wandeln Sie die betroffenen Felder in der Struktur in Zeiger um:
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"` }
Auf diese Weise:
Durch die Verwendung von Zeigern ermöglichen wir die Flexibilität, sowohl leere als auch aktualisierte Werte in MongoDB-Updates zu verarbeiten und gleichzeitig das „Omitempty“-Verhalten beizubehalten.
Das obige ist der detaillierte Inhalt vonWie behalte ich leere Werte in MongoDB-Updates mit Golangs „omitempty' bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!