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