2017-10-18 12 views
1

MongoDBを使用するC++プロジェクトの開発者です。特に、MongoDB 3.2とドライバレガシー1.1.xを使用しています。約2000件のテスト(単体テストとブラックボックステストの間)のテスト回帰スイートがあり、そのほとんどがMongoDBサーバーとのやりとりを引き起こします。MongoDB C++ legacy-1.1.xとMongoDBとの互換性3.4

私たちはMongoDBサーバーを3.2から変更することをテストしました。 3.4。私たちは3.4でテストスイートを実行しましたが、すべてのテストは問題なく動作しています。

これは良いニュースのようです。しかし、MongoDB C++ driver documentationを見ると、従来の1.1.xドライバはMongoDB 3.4と互換性がありません。

なぜ私のコード(すべての〜2000回の回帰テスト)が機能しているのでしょうか?ドキュメンテーションの互換性マトリックスが推奨される設定かもしれませんが、必須ではありませんか?あるいは、MongoDB 3.4でいくつかの新機能を使用しているときに、私のコードが使用されていない(MongoDB 3.2の機能セットを念頭に置いて設計されているため)という不一致が起こります。

+1

[すべてのドライバの一般的なマトリックス](https://docs.mongodb.com/ecosystem/drivers/driver-compatibility-reference/)ともちろん[特定のC++セクション](https:// docs .mongodb.com/ecosystem/drivers/driver-compatibility-reference /#reference-compatibility-mongodb-cpp)を参照してください。実際には大きな変化はありません。導入されるのは、より多くの「機能」(Decimal128、照合対応メソッド)です。特定の理由は "互換性がありません"とは、データベースに存在することがあるこれらの「新機能」(特にDecimal128 BSON)がドライバでサポートされておらず、それを破るためです。 –

答えて

2

このマトリックスは「推奨」と読み替えてください。お勧めの通り、従来のドライバではアクセスできないMongoDB 3.4の機能があり、サポートを追加する予定はありません。しかし、あなたのテストが3.4の機能を必要としない場合、ドライバが設計どおりに動作することは驚くべきことではありません。

ただし、できるだけ早く新しいmongocxxドライバにアップグレードすることを強くお勧めします。レガシードライバは、メンテナンスだけがバグ修正であり、後でなくEOLにすぐに向かいます。

この新しいドライバは、最新のMongoDBドライバの設計と原則に準拠した、より優れたプログラミングモデルを提供し、新しいデータベース機能のサポートを継続的に表明するように更新されます。

関連する問題