Overview
次の新機能をご覧ください。
重大な変更のタイプ
C++ドライバーの新しいバージョンでは、次のタイプの重大な変更が導入される可能性があります。
APIの変更は、 C++ドライバー ライブラリのAPIを考慮します。 これらの変更にはAPIメジャー バージョンのアップグレードが伴います。 これらの変更に対処するには、プロジェクト内のC++ソースコードを編集する必要がある場合があります。
例
関数
v1::func()の宣言を削除します。 (ABI 互換性のために定義は引き続き提供されます)。インライン関数
v_noabi::func()を削除します。v_noabi::func()を削除します。bsoncxx::fooの再利用をv1::fooからv2::fooに変更します。 古いインターフェースを引き続き使用するには、bsoncxx::fooをbsoncxx::v1::fooとして修飾します。
ABIの変更は、 C++ドライバー ライブラリの ABI に関する変更です。 これらの変更には ABI バージョンのアップグレードが伴いますが、 APIメジャー バージョンのアップグレードが伴う場合もあります。 これらの変更に対処するには、プロジェクトを再ビルドするか、 C++ソースコードを編集する必要がある場合があります。
ABI 安定性は、
v_noabi名前空間で宣言されたエンティティに対応するシンボルではサポートされていません。 このようなシンボルの重大な変更には、必ずしも ABI バージョンのアップグレードが必要ではありません。例
エクスポートされたシンボル
v_noabi::func()を削除します。エクスポートされたシンボル
v1::func()を削除します。v1::typeのエクスポートされたシンボルを削除します。
ビルド システムの変更は、ビルド システムまたはC++ドライバー ライブラリのパッケージ化に関するものです。 これらの変更は必ずしもAPIメジャー バージョン アップグレードや ABI バージョン アップグレードを伴うものではありません。 これらの変更に対処するには、ビルド システム構成を変更するか、プロジェクトのパッケージまたは依存関係管理設定を更新する必要がある場合があります。 また、 C++ソースコードを変更または再構築する必要がある場合もあります。
例
ENABLE_FOO構成変数を削除します。ENABLE_BAR構成変数のデフォルト値をOFFからONに変更します。プラットフォーム A、コンパイラー B、またはアーキテクチャCのサポートを削除します。
このリリースには次のバグが含まれています。
C++ドライバーのAPIバージョンが
0.0.0に誤って設定されることがあります。CMaxプロジェクトが複数回構成されている場合、または初期構成時にBUILD_VERSIONが明示的に設定されている場合は、 C++ドライバーのAPIバージョンと同じ値に設定されている場合があります。CSpec は、find_package()を使用して既存のCドライバーのインストールが見つからない場合にのみ、C++ドライバーを使用してCドライバーを自動ダウンロードします。このバグは、今後のパッチ リリースで修正される予定です。
このリリースの詳細については、 Githubの v4.0 リリースノート を参照してください。
3.11の新機能
警告
重大な変更
v 3.11ドライバーは、次の重大な変更を導入します。
MongoDB Server v 3.6のサポートを廃止します。
MongoDB Cドライバー v 1.28.0以降が必要です。
bsoncx ABI 内の次のプライベート ノード関数のエクスポートを削除します。
bsoncxx::v_noabi::types::bson_value::value::value(const uint8_t*, uint32_t, uint32_t, uint32_t)bsoncxx::v_noabi::types::bson_value::view::_init(void*)bsoncxx::v_noabi::types::bson_value::view::view(const uint8_t*, uint32_t, uint32_t, uint32_t)bsoncxx::v_noabi::types::bson_value::view::view(void*)
mongocx ABI 内の次のプライベート ノード関数のエクスポートを削除します。
mongocxx::v_noabi::options::change_stream::as_bson()mongocxx::v_noabi::options::aggregate::append(bsoncxx::v_noabi::builder::basic::document&)mongocxx::v_noabi::options::index::storage_options()
MSVC でコンパイルされた場合は、エクスポートされたすべての関数シンボルを
__cdeclで宣言します。 プロジェクトを構築するときに、代替のデフォルトの呼び出し規則を使用する場合、これは ABI の重大重大な変更です。
v 3.11ドライバーのリリースには、次の新機能が含まれています。
MongoDB Server v 8.0のサポートを追加します。
Queryable Encryption範囲クエリのサポートを追加します。 この機能を使用するには、アプリをMongoDB Server 8.0以降に接続する必要があります。 Queryable Encryptionの詳細については、 MongoDB Serverマニュアルの「 Queryable Encryption 」を参照してください。
mongocxx::v_noabi::bulk_writeのempty()メンバー関数を追加します。
このリリースには次のバグが含まれています。
C++ドライバーのAPIバージョンが
0.0.0に誤って設定されることがあります。CMaxプロジェクトが複数回構成されている場合、または初期構成時にBUILD_VERSIONが明示的に設定されている場合は、 C++ドライバーのAPIバージョンと同じ値に設定されている場合があります。CSpec は、find_package()を使用して既存のCドライバーのインストールが見つからない場合にのみ、C++ドライバーを使用してCドライバーを自動ダウンロードします。このバグは、今後のパッチ リリースで修正される予定です。
このリリースの詳細については、 Githubの v3.11 リリースノート を参照してください。
3.10の新機能
警告
システムの重大な変更の構築
v 3.10ドライバーは、ビルド システムに次の重大な変更を導入します。
find_package(libbsoncxx)とfind_package(libmongocxx)の呼び出しのサポートを廃止します。 代わりにfind_package(bsoncxx)とfind_package(mongocxx)を使用してください。レガシーCSpecパッケージ構成ファイルによって提供される
LIBBSONCXX_*およびLIBMONGOCXX_*CSpec 変数のサポートを廃止します。 代わりに、mongo::bsoncxx_*とmongo::mongocxx_*CSpec ターゲットを使用してください。BSONCXX_POLY_USE_STD_EXPERIMENTALCake オプションを削除し、実験的なC++標準ライブラリを polyfill オプションとして選択するためのサポートを廃止します。
The v 3.10.0 ドライバー リリースには、次の新機能が含まれています。
bsoncxxおよびmongocxxクラスタイプの非定義宣言を提供するフォワード ヘッダーを追加します。 ドライバーは、ライブラリ エンティティのユーザー定義によるフォワード宣言をサポートしていません。 ライブラリ エンティティの宣言または定義を取得するには、対応する ヘッダーを常に含めます。CSpec オプション
ENABLE_BSONCXX_USE_POLY_IMPLSを使用すると、ポリゴン ライブラリが要求されていない場合に、デフォルトでC++ 17ポリゴンのbsoncxx実装を選択できます。 このオプションはデフォルトでOFFです。CMax オプション
BSONCXX_POLY_USE_IMPLSを使用すると、外部ライブラリまたはC++標準ライブラリの代わりに、 C++ 17ポリゴンのbsoncxx実装を選択できます。 このオプションはデフォルトでOFFです。bsoncxx::v_noabiとmongocxx::v_noabiの名前空間は、インラインで宣言されなくなりました。 ルート名前空間宣言は引き続きサポートされ、以前の定義と同等であることが予想されます。 例、bsoncxx::documentは依然としてbsoncxx::v_noabi::documentと同等であり、mongocxx::clientは引き続きmongocxx::v_noabi::clientと同等です。デフォルトでは 、ライブラリのファイル名が MSV でコンパイルされると(CSpec の
MSVC変数によって検出)、ABI タグstringが埋め込まれます。 これらの文字列は次のようになります。bsoncxx-v_noabi-rhs-x64-v142-md.lib この動作を無効にするには、CSpec 構成の一部として
ENABLE_ABI_TAG_IN_LIBRARY_FILENAMES=OFFを設定します。ABI タグ string は、次のように pkg-configメタデータファイル名に埋め込むこともできます。
libbsoncxx-v_noabi-rhs-x64-v142-md.pc この動作を有効にするには、CMax 構成の一部として
ENABLE_ABI_TAG_IN_LIBRARY_FILENAMES=ONとENABLE_ABI_TAG_IN_PKGCONFIG_FILENAMES=ONを設定します。
このリリースの詳細については、 Githubの v3.10 リリースノート を参照してください。
3.9の新機能
警告
システムの重大な変更の構築
v 3.9ドライバーは、次の重大な変更を導入します。
CSpecプロジェクト構築ツリーからエクスポートされたターゲットのサポートを削除します
macOS 10.14 、 macOS 10.15 、 Ubuntu 14.04のサポートを廃止します。
MongoDB Cドライバー v 1.25.0以降が必要
FetchContentモジュールをサポートするには CMax v 3.15以降が必要
v 3.9ドライバーのリリースには、次の新機能が含まれています。
MongoDB C ドライバーの依存関係を指定しない場合、ドライバーは自動的にMongoDB Cドライバーの依存関係をダウンロードします。
ドライバーは、
allターゲットの一部としてテストをビルドしなくなりました。 テストを構築するには、CSpec 構成の一部としてBUILD_TESTING=ONを設定します。ドライバーは、システムによって提供されていない場合は、
ExternalProjectモジュールではなく、FetchContentモジュールを使用して MNMLSTC コア ポリゴン ライブラリをダウンロードして構築します。また、MNMLSTC Core ヘッダーのincludeディレクティブもパッチされません。CMax オプション
MONGOCXX_OVERRIDE_DEFAULT_INSTALL_PREFIXを追加します。 このオプションがTRUEに設定されている場合、CMAKE_INSTALL_PREFIXオプションはデフォルトでビルドディレクトリになります。 このオプションのデフォルト値はTRUEです。MongoDB 検索インデックスを管理するためのAPIを追加します。
VERSIONINFOリソースをbsoncxx.dllとmongocxx.dllに追加します。APMコールバックから例外をスローするドキュメントは、明示的に未定義の動作です。
CMax ビルド ステップ中に MNMLSTC コア ヘッダーを早期インストールしません。
インストールされたすべてのC++ドライバーパッケージ構成で、 MongoDB Cドライバー CMaxパッケージが
find_dependency()経由で見つかる必要があります。
このリリースの詳細については、 Githubの v3.9 リリースノート を参照してください。