sql >> データベース >  >> NoSQL >> MongoDB

オブジェクトをMongoDBC#ドライバーとのインターフェースとして逆シリアル化します

    ええと、この答えを得ようとすると、私は多くの問題を見つけました。

    まず第一に、MongoDB C#ドライバーには、インターフェースを逆シリアル化するときにいくつかの問題があります。 、この質問のコメントでCraig Wilsonが言ったように、問題ページ> 。

    前に述べたように、この問題の安全な実装は、実際には、BsonClassMap.RegisterClassMapを使用したカスタムBSONシリアライザーまたは特定のクラスマップである可能性があります。 。

    そのため、クラスマップを実装しましたが、問題は解決しませんでした。

    問題を楽しみにして、例外がドライバーの別の問題に関連していることを発見しました:structsを逆シリアル化するときの問題

    プロジェクトを初期状態(クラスマップまたはカスタムシリアライザーなし)にロールバックし、構造体タイプをクラスタイプに変更しました。機能しました

    再開すると、この例外エラーは、インターフェイスの逆シリアル化ではなく、構造体の逆シリアル化に関連しています。

    とにかく、それは本当の問題であり、最初の問題のように、2番目の問題は改善よりもバグと見なす必要があります。

    これらのリンクで問題を見つけることができます:



    1. SpringDataMongoDBとallowDiskUse

    2. Twitterクローンに最適なMongoDBスキーマ?

    3. MongoDBはallowDiskUsage:Trueで集計を処理しません

    4. rubyredisクライアントスキャンとキー