Heim > Artikel > Backend-Entwicklung > Wie speichere ich verschachtelte Strukturen in MongoDB mit mgo und behalte eine abgeflachte Struktur bei?
Speichern verschachtelter Strukturen in MongoDB mit Mgo
Verschachtelte Strukturen in Go können beim Übergang zu MongoDB-Dokumenten eine Herausforderung darstellen. Wenn Sie json.Marshal verwenden und in die Standardausgabe schreiben, werden verschachtelte Strukturen reduziert. Bei Verwendung von mgo.Upsert bleibt jedoch die verschachtelte Struktur erhalten.
Um die abgeflachte Struktur in MongoDB beizubehalten, verwenden Sie das Tag „bson:“,inline“ für die verschachtelte Struktur. Dieses Tag gibt an, dass die Felder der verschachtelten Struktur so behandelt werden sollen, als wären sie Teil der äußeren Struktur.
Betrachten Sie beispielsweise den folgenden Code:
<code class="go">type Square struct { Length int Width int } type Cube struct { Square `bson:",inline"` Depth int }</code>
Hier ist die Square-Struktur eingebettet in die Cube-Struktur mit dem bson:",inline"-Tag. Wenn Sie mgo.Upsert mit dieser Struktur verwenden, hat das resultierende Dokument das folgende Format:
{ "Length":2, "Width":3, "Depth":4 }
Dieser Inline-Tag-Ansatz ermöglicht es Ihnen, die gewünschte abgeflachte Struktur in MongoDB beizubehalten, ohne die ursprüngliche Strukturdefinition zu ändern oder darauf zurückzugreifen manuelle Abflachungstechniken.
Das obige ist der detaillierte Inhalt vonWie speichere ich verschachtelte Strukturen in MongoDB mit mgo und behalte eine abgeflachte Struktur bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!