問題を見つける 最近、プログラムのストレージを Mongodb に移行したところ、Guid 型が書き込まれた後、プログラムで読み取られたデータがクライアント ツールで表示されるデータと異なるという現象を発見しました。簡単な例は次のとおりです。 var doc = new {_id = 1、Value = Guid.Parse("{B63932BB-9688-432B-B3A0-C4AE3FD2696A}") }; コレクション.InsertOne(doc.ToBsonDocument()); DB に書き込んだ後、クライアント ツールからそれを表示します。 比較すると、表示された値は書き込まれた形式とは異なりますが、読み取られた値は正しいことがわかります。この質問に対する答えは、公式ドキュメントの仕様に記載されています。 公式ドキュメント: http://bsonspec.org/spec.html Mongodb は uuid をバイナリ型として保存し、サブタイプを使用してその型を uuid としてマークします。C#、Java、Python 用に提供されているドライバーでは、サブタイプはデフォルトで 3 (レガシー UUID) にマップされ、クライアント ツールにも表示されます。 実際、ほとんどのクライアント ツールは、私たちが記述したとおりの Legacy UUID の表示もサポートしています。 回避策 これはプログラムの機能には影響しませんが、一見すると文字列が記述された形式ではないため、プログラムのデバッグに影響することがよくあります。より良い解決策は、デフォルトで標準の UUID 形式で保存することです。グローバル構成を設定するだけで済みます。 BsonDefaults.GuidRepresentation = GuidRepresentation.Standard; これははるかに便利です: 参考記事: UUID データに関する MongoDB のベスト プラクティス 要約する 上記はMongodbのGUIDの表示問題についての詳細な内容です。MongodbのGUIDの表示問題についての詳細は、123WORDPRESS.COMの他の関連記事をご覧ください。 |
>>: Linux で推奨される 9 つの優れたコード比較ツールの概要
目次序文1. 全員にインストールパッケージを用意する2. Navicatをインストールし、Navic...
背景スレッド•マスタースレッドコア バックグラウンド スレッドは主に、バッファー プール データをデ...
ローカルでコンテナを作成した後、このコンテナに基づいてローカル イメージを作成し、このイメージを D...
昨夜、MySQL データベースにデータセットを挿入したときにエラーが発生しました。データベースは容赦...
1. 単一の矢印への複数の呼び出し単一の矢印を実装したら、二重矢印を実装するのは簡単です。上では、単...
1. テーブル リセットの 2 つのプロパティ: ①border-collapse: collaps...
簡単に言うと、今日は Gitlab-CI を使用してリモート サーバーに自動的にデプロイする方法につ...
最近、docker load -i コマンドを使用してイメージ パッケージを圧縮した後、イメージ名と...
Linux のufw (Uncomplicated Firewall) を見て、ファイアウォールに変...
js興味深いカウントダウンケース、参考までに、具体的な内容は次のとおりですコード: <!DO...
今日、フラッシュ広告のコードを書いていたとき、フラッシュに付属するリンクはポップアップ広告と間違われ...
レコード ロックは、単一のインデックス レコードをロックします。レコード ロックは常にインデックスを...
目次1. Dockerをインストールする2. Jenkinsイメージファイルを取得する3. マウント...
Linux でダイナミック ライブラリをロードできません次のような異常事態が発生した場合./test...
目次背景1) yumのkeepchche機能を有効にする: 方法1 2) yum-utils ソフト...