Maison > Article > développement back-end > Comment stocker des structures imbriquées dans MongoDB avec mgo et conserver une structure aplatie ?
Stockage de structures imbriquées dans MongoDB avec Mgo
Les structures imbriquées dans Go peuvent poser un défi lors de la transition vers des documents MongoDB. Lors de l'utilisation de json.Marshal et de l'écriture sur la sortie standard, les structures imbriquées sont aplaties. Cependant, lors de l'utilisation de mgo.Upsert, la structure imbriquée est conservée.
Pour conserver la structure aplatie dans MongoDB, utilisez la balise bson:",inline" pour la structure imbriquée. Cette balise indique que les champs de la structure imbriquée doivent être traités comme s'ils faisaient partie de la structure externe.
Par exemple, considérons le code suivant :
<code class="go">type Square struct { Length int Width int } type Cube struct { Square `bson:",inline"` Depth int }</code>
Ici, la structure Square est intégré dans la structure Cube avec la balise bson:",inline". Lors de l'utilisation de mgo.Upsert avec cette structure, le document résultant aura le format suivant :
{ "Length":2, "Width":3, "Depth":4 }
Cette approche de balise en ligne vous permet de conserver la structure aplatie souhaitée dans MongoDB sans modifier la définition de la structure d'origine ni recourir à techniques d'aplatissement manuel.
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!