중첩된 Go 구조체를 MongoDB 문서에 저장하려고 합니다. 그러나 구조체와 함께 json.Marshal 또는 mgo.Collection.Upsert를 사용하면 중첩 구조가 평면화됩니다.
데이터베이스에서 중첩 구조를 유지하려면 데이터베이스에서 bson:",inline" 필드 태그를 활용하세요. 구조체 정의로 이동합니다. 이 태그는 Mgo가 중첩된 구조체의 필드를 외부 구조체의 직접 필드인 것처럼 처리하도록 지시합니다.
예를 들어, 언급한 단순화된 예를 고려해 보세요.
<code class="go">type Square struct { Length int Width int } type Cube struct { Square `bson:",inline"` Depth int }</code>
이 경우, 큐브 구조는 다음 JSON 구조를 사용하여 데이터베이스에 저장됩니다.
<code class="json">{ "Length": 2, "Width": 3, "Depth": 4 }</code>
이는 원하는 출력과 일치하고 중첩 구조를 유지합니다.
위 내용은 MongoDB에 Go 구조체를 저장할 때 중첩 구조를 보존하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!