>백엔드 개발 >Golang >Go에서 구조를 유지하면서 MongoDB에 중첩된 구조체를 어떻게 저장할 수 있나요?

Go에서 구조를 유지하면서 MongoDB에 중첩된 구조체를 어떻게 저장할 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-11-06 01:04:02293검색

How can I store nested structs in MongoDB while preserving their structure in Go?

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

Go 및 MongoDB에서 중첩 구조체를 처리할 때 개발자는 작업 중에 원하는 구조를 유지해야 하는 어려움에 직면하는 경우가 많습니다.

Go 구조체를 MongoDB 문서로 변환할 때 문제가 발생합니다. 간단한 중첩 구조체는 평면화하여 바이너리 저장을 방지할 수 있지만 더 복잡한 구조를 평면화하면 코드 가독성이 저하될 수 있습니다.

한 가지 해결책은 mgo 패키지의 인라인 필드 태그를 활용하는 것입니다. 인라인 태그는 mgo가 포함된 구조체를 포함 구조체의 일부인 것처럼 처리하여 중첩 계층 구조를 유지하도록 지시합니다.

예를 들어 다음 코드 조각을 고려하세요.

<code class="go">type Square struct {
    Length int 
    Width int
}

type Cube struct {
    Square `bson:",inline"`
    Depth int
}</code>

인라인 태그를 Square에 적용하면 포함된 구조체가 MongoDB 문서로 변환하는 동안 평면화되어 다음과 같은 결과가 발생합니다.

<code class="json">{
    "Length": 2,
    "Width": 3,
    "Depth": 4
}</code>

이 접근 방식을 사용하면 개발자는 데이터가 원하는 형식으로 저장되도록 하면서 중첩된 구조체를 유지할 수 있습니다. 몽고DB. 인라인 태그가 없으면 중첩된 Square 구조체가 Cube 문서 내에 별도의 필드로 저장됩니다.

위 내용은 Go에서 구조를 유지하면서 MongoDB에 중첩된 구조체를 어떻게 저장할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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