新機能
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のサポートを削除します。
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()
メンバー関数を追加します。
このリリースの詳細については、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_EXPERIMENTAL
Cake オプションを削除し、実験的な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
を設定します。
このリリースの詳細については、 v3.10 リリースノート を参照してくださいGithub .
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ドライバーのリリースには、次の新機能が含まれています。
C++ドライバーコンテナイメージが Dockerハブで利用できるようになりました。
MongoDB C ドライバーの依存関係を指定しない場合、ドライバーは自動的にMongoDB Cドライバーの依存関係をダウンロードします。
ドライバーは、
all
ターゲットの一部としてテストをビルドしなくなりました。 テストを構築するには、CSpec 構成の一部としてBUILD_TESTING=ON
を設定します。ドライバーは モジュールを使用して
FetchContent
MNMLSTC コア をダウンロードと構築します システムによって提供されていない場合は、ExternalProject
モジュールの代わりに 多角形 ライブラリが使用されます。また、MNMLSTC Core ヘッダーのinclude
ディレクティブもパッチされません。CMax オプション
MONGOCXX_OVERRIDE_DEFAULT_INSTALL_PREFIX
を追加します。 このオプションがTRUE
に設定されている場合、CMAKE_INSTALL_PREFIX
オプションはデフォルトでビルドディレクトリになります。 このオプションのデフォルト値はTRUE
です。Atlas Search インデックスを管理するためのAPIを追加します。
VERSIONINFO
リソースをbsoncxx.dll
とmongocxx.dll
に追加します。APMコールバックから例外をスローするドキュメントは、明示的に未定義の動作です。
CMax ビルド ステップ中に MNMLSTC コア ヘッダーを早期インストールしません。
インストールされたすべてのC++ドライバーパッケージ構成で、 MongoDB Cドライバー CMaxパッケージが
find_dependency()
経由で見つかる必要があります。
このリリースの詳細については、 v3.9 リリースノート を参照してくださいGithub .