Maison > développement back-end > Golang > Pourquoi seuls les champs de structure en majuscules sont-ils mis à jour dans CouchDB à l'aide de go-couchdb ?

Pourquoi seuls les champs de structure en majuscules sont-ils mis à jour dans CouchDB à l'aide de go-couchdb ?

Mary-Kate Olsen
Libérer: 2024-12-05 05:01:45
original
994 Les gens l'ont consulté

Why Are Only Capitalized Struct Fields Updated in CouchDB Using go-couchdb?

La capitalisation a un impact sur le stockage des données dans les structures CouchDB

Lors de l'utilisation de la bibliothèque "github.com/mikebell-org/go-couchdb" pour accéder CouchDB, un problème particulier se pose : seuls les champs de structure avec des lettres initiales en majuscule sont mis à jour dans la base de données inserts.

Exemple :

type Person struct {
    name string
    Age  int
}
Copier après la connexion

Lors de l'insertion d'une instance de personne dans la base de données :

joe := Person{
    name: "mike",
    Age:  190,
}
Copier après la connexion

Seul le champ Âge est ajouté à la base de données. Les autres champs en minuscules, comme le nom, sont omis.

La raison derrière le comportement :

Ce comportement découle de la spécification du langage Go, qui dicte que les champs avec une initiale minuscule les lettres ne sont pas exportées. Par conséquent, le package de sérialisation JSON (par exemple, json) n'inclut ces champs que s'il est explicitement demandé de le faire.

Surmonter le problème :

Pour incorporer des champs en minuscules dans la base de données, utilisez les balises JSON :

type Person struct {
    name string `json:"name"`
    Age  int    `json:"Age"`
}
Copier après la connexion

En spécifiant la balise json, le champ du nom en minuscule est explicitement exposé pour Sérialisation JSON, permettant de le conserver dans la base de données. Reportez-vous à la documentation pour plus de détails sur les balises JSON.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal