ホームページ > バックエンド開発 > Golang > mongogo ドライバーでの Mongodb の保存と取得

mongogo ドライバーでの Mongodb の保存と取得

PHPz
リリース: 2024-02-06 09:39:07
転載
1064 人が閲覧しました

mongogo 驱动程序中的 Mongodb 存储和检索

質問内容

mongo go driverを使用してmongodbからデータを挿入し、そのデータを読み取ろうとしています。データフィールドを持つ構造体を使用しています。このデータ型をインターフェイスとして使用すると、複数のマップが取得され、それをマップ スライスとして指定すると、単一のマップが返されます。 mongodb のデータも同様です。

リーリー

インターフェースのみを使用する場合

マップタイルを使用する場合

どちらの場合でも保存されるデータは似ています。

データにアクセスしようとするとデータの不一致が生じるのはなぜですか?


正解


interface{} を使用すると、mongodb からのデータを最もよく表すものをドライバーが選択できることになります。到着するデータのデータ型。

[]map[string]interface{} を使用する場合は、マップ スライスが必要であることを明示的に示します。各マップはドキュメントを表すことができます。

interface{} を使用するときは、何も言いません。ドライバーは、配列を表すために bson.a を選択し、ドキュメントを表すために bson.d を選択します。

bson.a a> は単なる [] インターフェース{}bson.d []e (e

) リーリー

したがって、基本的に bson.d は、キーと値のペア (プロパティ) の順序付きリストです。

したがって、interface{} を使用すると、複数のマップではなく 1 つのスライスが得られます。型情報を出力しない場合、fmt パッケージは角括弧で囲まれたスライスとマップを出力します。

タイプを確認したい場合は、次のように出力します:

リーリー

[]map[string] インターフェースを使用する場合の出力 {}:

リーリー

インターフェイス使用時の出力{}: リーリー

以上がmongogo ドライバーでの Mongodb の保存と取得の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート