Maison > Article > développement back-end > Comment préserver les structures imbriquées lors du stockage des structures Go dans MongoDB ?
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>
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>
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!