ホームページ  >  記事  >  バックエンド開発  >  Golang で MongoDB に保存するときの null データ値の問題を解決するにはどうすればよいですか?

Golang で MongoDB に保存するときの null データ値の問題を解決するにはどうすればよいですか?

WBOY
WBOY転載
2024-02-09 09:40:09528ブラウズ

在 Golang 中保存到 MongoDB 时如何解决空数据值问题?

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" を使用して CurrencyRate# に埋め込むことに起因します。 ## タイプによって引き起こされるタイプ。ただし、json.Unmarshal に提供された入力 JSON には、対応する 'Currency' フィールドが含まれていません。したがって、Currency 型のすべてのフィールドはゼロ値を受け取り、MongoDB に保存されます。この問題を解決するには、Currency 型の埋め込み中に json タグ json:"currency" を削除するか (以下に示すように)、ターゲット オブジェクトを構築して一貫性を保つことができます。入力 JSON の構造。 リーリー

以上がGolang で MongoDB に保存するときの null データ値の問題を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。