Heim >Backend-Entwicklung >Golang >Warum werden in CouchDB mit go-couchdb nur großgeschriebene Strukturfelder aktualisiert?
Großschreibung wirkt sich auf die Datenspeicherung in CouchDB-Strukturen aus
Bei Verwendung der Bibliothek „github.com/mikebell-org/go-couchdb“ für den Zugriff Bei CouchDB tritt ein besonderes Problem auf: Nur Strukturfelder mit großgeschriebenen Anfangsbuchstaben werden in der Datenbank aktualisiert Einfügungen.
Beispiel:
type Person struct { name string Age int }
Beim Einfügen einer Personeninstanz in die Datenbank:
joe := Person{ name: "mike", Age: 190, }
Nur das Feld „Alter“ wird hinzugefügt die Datenbank. Andere kleingeschriebene Felder, wie z. B. der Name, werden weggelassen.
Der Grund für das Verhalten:
Dieses Verhalten ergibt sich aus der Go-Sprachspezifikation, die vorschreibt, dass Felder mit Kleinbuchstaben beginnen Briefe werden nicht exportiert. Daher enthält das JSON-Serialisierungspaket (z. B. json) diese Felder nur, wenn dies ausdrücklich angewiesen wird.
Lösung des Problems:
Um Felder in Kleinbuchstaben zu integrieren in die Datenbank, verwenden Sie JSON-Tags:
type Person struct { name string `json:"name"` Age int `json:"Age"` }
Durch die Angabe des JSON-Tags wird das Feld für den Namen in Kleinbuchstaben explizit verfügbar gemacht JSON-Serialisierung, sodass es in der Datenbank gespeichert werden kann. Weitere Informationen zu JSON-Tags finden Sie in der Dokumentation.
Das obige ist der detaillierte Inhalt vonWarum werden in CouchDB mit go-couchdb nur großgeschriebene Strukturfelder aktualisiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!