Golang では、データを MongoDB に保存するときに、データ値が null になるという問題がよく発生します。フィールドの値が空の場合、MongoDB はデフォルトでその値を null として保存します。ただし、実際のアプリケーションでは、データの処理とクエリをより適切に行うために、特定のデフォルト値として保存することを好む場合があります。では、Golang でこの問題を解決するにはどうすればよいでしょうか?この記事にはphp編集者のBaicaoが詳しくお答えします。
私は Golang を初めて使用するのですが、データをデータベースに保存する際に問題があります。 API から JSON オブジェクトを受け取った後、それを MongoDB に保存しようとしましたが、データは null 値で保存されました。
これは私のコードと構造です:
リーリーこれが私のモデルです。go
リーリーデータをデータベースに保存しようとしましたが、空の文字列と 0 を含むデフォルト値を書き込んだだけでした
リーリーこのオブジェクトをデータベースに取得していますが、値がありません。データが MongoDB に正しく保存されていない理由を調べようとしています。助けやアドバイスをいただければ幸いです。
var current:={ "usd": { "code": "USD", "alphaCode": "USD", "numericCode": "840", "name": "U.S. Dollar", "rate": 0.68135437808647, "date": "Sun, 31 Dec 2023 11:55:01 GMT", "inverseRate": 1.4676650391657 }, "eur": { "code": "EUR", "alphaCode": "EUR", "numericCode": "978", "name": "Euro", "rate": 0.61624276207684, "date": "Sun, 31 Dec 2023 11:55:01 GMT", "inverseRate": 1.6227371119619 }, "gbp": { "code": "GBP", "alphaCode": "GBP", "numericCode": "826", "name": "U.K. Pound Sterling", "rate": 0.53541690218052, "date": "Sun, 31 Dec 2023 11:55:01 GMT", "inverseRate": 1.8677034586085 } }
この問題は、json タグ json:"currency"
を使用して Currency
を Rate# に埋め込むことに起因します。 ## タイプによって引き起こされるタイプ。ただし、
json.Unmarshal に提供された入力 JSON には、対応する '
Currency' フィールドが含まれていません。したがって、
Currency 型のすべてのフィールドはゼロ値を受け取り、MongoDB に保存されます。この問題を解決するには、
Currency 型の埋め込み中に json タグ
json:"currency" を削除するか (以下に示すように)、ターゲット オブジェクトを構築して一貫性を保つことができます。入力 JSON の構造。
リーリー
以上がGolang で MongoDB に保存するときの null データ値の問題を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。