Beim Versuch, eine verschachtelte Go-Struktur als MongoDB-Dokument mit mgo zu speichern, können Benutzer auf Probleme mit der abgeflachten Struktur stoßen. Während die json.Marshal-Funktion die gewünschte flache Struktur erzeugen kann, speichert sie die Daten beim Upserting in MongoDB als Binärdatei.
Um die verschachtelte Struktur während des Upsertings beizubehalten, stellt mgo das Feld-Tag bson:",inline" bereit. Dieses Tag fügt die verschachtelte Struktur ein, wodurch ihre Felder als Teil der äußeren Struktur behandelt werden. Betrachten Sie beispielsweise die folgende vereinfachte verschachtelte Struktur:
<code class="go">type Square struct { Length int Width int } type Cube struct { Square Depth int }</code>
Durch Hinzufügen des bson:",inline"-Tags zum Quadratfeld wird die Struktur wie folgt definiert:
<code class="go">type Cube struct { Square `bson:",inline"` Depth int }</code>
Beim Einfügen in MongoDB mit mgo haben die Daten nun die gewünschte flache Struktur:
<code class="json">{ "Length":2, "Width":3, "Depth":4 }</code>
Dieser Ansatz ermöglicht es Benutzern, die Lesbarkeit und Struktur ihres Go-Codes beizubehalten und gleichzeitig verschachtelte Strukturen erfolgreich in MongoDB zu speichern.
Das obige ist der detaillierte Inhalt vonWie speichere ich verschachtelte Go-Strukturen mit mgo und behalte gleichzeitig ihre Struktur in MongoDB bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!