Mgo를 사용하여 MongoDB에 중첩 구조체 저장
Go의 중첩 구조체는 MongoDB 문서로 전환할 때 문제를 일으킬 수 있습니다. json.Marshal을 사용하고 표준 출력에 쓸 때 중첩된 구조체가 평면화됩니다. 그러나 mgo.Upsert를 사용하면 중첩 구조가 유지됩니다.
MongoDB에서 평면화된 구조를 유지하려면 중첩 구조에 bson:",inline" 태그를 사용하세요. 이 태그는 중첩된 구조체의 필드가 외부 구조체의 일부인 것처럼 처리되어야 함을 나타냅니다.
예를 들어 다음 코드를 고려하세요.
<code class="go">type Square struct { Length int Width int } type Cube struct { Square `bson:",inline"` Depth int }</code>
여기서 Square 구조체는 다음과 같습니다. bson:",inline" 태그를 사용하여 Cube 구조체에 포함됩니다. 이 구조체와 함께 mgo.Upsert를 사용하면 결과 문서의 형식은 다음과 같습니다.
{ "Length":2, "Width":3, "Depth":4 }
이 인라인 태그 접근 방식을 사용하면 원래 구조체 정의를 수정하거나 다음에 의존하지 않고도 MongoDB에서 원하는 평면화된 구조를 유지할 수 있습니다. 수동 편평화 기술.
위 내용은 mgo를 사용하여 MongoDB에 중첩된 구조체를 저장하고 평면화된 구조를 유지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!