大文字の使用は 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 中国語 Web サイトの他の関連記事を参照してください。