>  기사  >  백엔드 개발  >  MongoDB에 Go 구조체를 저장할 때 중첩 구조를 보존하는 방법은 무엇입니까?

MongoDB에 Go 구조체를 저장할 때 중첩 구조를 보존하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-04 20:23:02231검색

How to Preserve Nested Structures When Storing Go Structs in MongoDB?

Mgo를 사용하여 중첩 구조체 저장

중첩된 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.