>백엔드 개발 >Golang >go-couchdb를 사용하여 CouchDB에서 대문자로 표시된 구조체 필드만 업데이트되는 이유는 무엇입니까?

go-couchdb를 사용하여 CouchDB에서 대문자로 표시된 구조체 필드만 업데이트되는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-05 05:01:45993검색

Why Are Only Capitalized Struct Fields Updated in CouchDB Using go-couchdb?

대문자화는 CouchDB 구조체의 데이터 저장에 영향을 미칩니다

"github.com/mikebell-org/go-couchdb" 라이브러리를 활용하여 액세스하는 경우 CouchDB에서 특이한 문제가 발생합니다. 첫 글자가 대문자인 구조체 필드만 데이터베이스에서 업데이트됩니다. inserts.

예:

type Person struct {
    name string
    Age  int
}

Person 인스턴스를 데이터베이스에 삽입하면:

joe := Person{
    name: "mike",
    Age:  190,
}

Age 필드만 추가됩니다. 데이터베이스. 이름과 같은 다른 소문자 필드는 생략됩니다.

동작의 이유:

이 동작은 Go 언어 사양에서 비롯됩니다. 편지는 내보내지지 않습니다. 결과적으로 JSON 직렬화 패키지(예: json)에는 명시적으로 지시된 경우에만 이러한 필드가 포함됩니다.

문제 극복:

소문자 필드를 통합하려면 데이터베이스에 JSON 태그를 활용합니다.

type Person struct {
    name string `json:"name"`
    Age  int    `json:"Age"`
}

json 태그를 지정하면 소문자 이름 필드가 명시적으로 지정됩니다. JSON 직렬화를 위해 노출되어 데이터베이스에 지속될 수 있습니다. JSON 태그에 대한 자세한 내용은 설명서를 참조하세요.

위 내용은 go-couchdb를 사용하여 CouchDB에서 대문자로 표시된 구조체 필드만 업데이트되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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