Maison > développement back-end > Golang > Comment préserver les structures imbriquées lors du stockage des structures Go dans MongoDB ?

Comment préserver les structures imbriquées lors du stockage des structures Go dans MongoDB ?

Linda Hamilton
Libérer: 2024-11-04 20:23:02
original
298 Les gens l'ont consulté

How to Preserve Nested Structures When Storing Go Structs in MongoDB?

Stockage de structures imbriquées avec Mgo

Vous essayez d'enregistrer une structure Go fortement imbriquée dans un document MongoDB. Cependant, la structure imbriquée est aplatie lorsque vous utilisez json.Marshal ou mgo.Collection.Upsert avec une struct.

Pour préserver la structure imbriquée dans la base de données, utilisez la balise de champ bson:",inline" dans votre Allez à la définition de la structure. Cette balise demande à Mgo de traiter les champs de la structure imbriquée comme s'il s'agissait de champs directs de la structure externe.

Par exemple, considérons l'exemple simplifié que vous avez mentionné :

<code class="go">type Square struct {
    Length int 
    Width int
}

type Cube struct {
    Square `bson:",inline"`
    Depth int
}</code>
Copier après la connexion

Dans ce cas, la structure Cube sera stockée dans la base de données avec la structure JSON suivante :

<code class="json">{
    "Length": 2,
    "Width": 3,
    "Depth": 4
}</code>
Copier après la connexion

Cela correspond à la sortie souhaitée et préserve la structure imbriquée.

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