Overview
このページでは、 Cドライバーの新しいバージョンにアップグレードするときにアプリケーションに加える必要がある変更について説明します。
アップグレードする前に、次のアクションを実行してください。
新しいCドライバーのバージョンが、アプリケーションが接続するMongoDB Server のバージョンと、アプリケーションを実行するプラットフォームと互換性があることを確認します。 バージョンの互換性情報については、 Cドライバーの互換性 ページを参照してください。
アプリケーションが現在使用しているドライバー バージョンと計画されているアップグレード バージョン間の重大な変更については、 重大な変更 セクションを参照してください。MongoDB Server のリリース互換性の変更の詳細については、「 Server リリースの互換性の変更 」セクションを参照してください。
Tip
将来ドライバーのバージョンをアップグレードする際にアプリケーションに必要な変更の数を最小限に抑えるには、 Stable APIを使用します。 詳しくは、「 Stable APIガイド 」を参照してください。
重大な変更
注意
Cドライバーは セマンティック バージョン管理 に従います。ドライバーは、どのリリースでもビルド システムまたはパッケージの互換性を中断する可能性があります。 パッチ リリースにより、誤ってAPI重大な変更が元に戻る可能性があります。
重大な変更とは、ドライバーの特定のバージョン以降の規則または動作の変更です。 このタイプの変更では、ドライバーをアップグレードする前に対処しないと、アプリケーションが正常に動作しなくなる可能性があります。
このセクションの重大な変更は、それを導入したドライバーのバージョンによって分類されます。 ドライバーのバージョンをアップグレードするときは、現在のバージョンとアップグレードのバージョン間のすべての重大な変更に対処してください。
Cドライバーは、libbson
と libmongoc
の 2 つのライブラリで構成されています。このガイドのセクションでは、各ライブラリに含まれる重大な変更について説明します。
例
バージョン 2.0.0 へのアップグレード
Cドライバーをバージョン 1.x からバージョン 2.0.0 にアップグレードする場合、バージョン 2.0.0 までのバージョン 1.x にリストされているすべての重大な変更に対処します。
バージョン2.0.0
libbson v2.0.0 での重大な変更
libbson
の 2.0.0 リリースには、次の重大な変更が含まれています。
BSON_ERROR_BUFFER_SIZE
マイクロの値を504
から503
に減らして、最終バイトを内部使用のために予約します。次の
pkg-config
ファイルの名前を変更します。libbson-1.0
: 名前を に変更bson2
libbson-static-1.0
: 名前を に変更bson2-static
bson-1.0
CSpecパッケージを削除します。代わりに、次の例に示すように、bson
を使用して、インポートするバージョンまたはバージョン範囲を指定します。find_package(bson 1.30...2.0) インポートされた次のターゲットの名前を変更します。
mongo::bson_static
: 名前を に変更bson::static
mongo::bson_shared
: 名前を に変更bson::shared
BSON_DEFAULT_IMPORTED_LIBRARY_TYPE
CMax オプションの値に応じて静的ライブラリまたは共有ライブラリのいずれかを指すbson::bson
ターゲットを追加します。このオプションを設定せず、両方のライブラリ タイプが利用可能な場合、bson::bson
は静的ライブラリを使用します。
libmongoc v2.0.0 での重大な変更
libmongoc
の 2.0 リリースには、次の重大な変更が含まれています。
batchSize:0
オプションをmongoc_client_watch
、mongoc_database_watch
、またはmongoc_collection_watch
に渡すと、aggregate
コマンドはこのオプションを無視せず、適用します。bson_oid_init_sequence
を削除します。代わりに、bson_oid_init
を使用してください。mongoc_server_description_host
の戻り値の型をmongoc_host_list_t *
からconst mongoc_host_list_t *
に変更します。URI認証情報の検証に次の変更を実装します。これは接続文字列から新しい
mongoc_uri_t
オブジェクトを作成するときに適用されます。すべての認証メカニズムでユーザー名が空でないことを要求します。
ユーザー名とパスワードの指定要件を検証し、指定された認証メカニズムのクライアントエラーを返します。
MONGODB-AWS
認証メカニズムの場合、authSource
値はデフォルトで$external
になります。authMechanism
値を検証し、無効な値についてはクライアントエラーを返します。authMechanismProperties
値を検証し、指定された認証メカニズムの無効なプロパティについてのクライアントエラーを返します。authMechanismProperties
値内のコロン(:
)文字を正しく解析します。例、authMechanismProperties=A:B,C:D:E,F:G
を設定すると、ドライバーは値を{'A': 'B', 'C': 'D:E,F:G'}
として解析します。これは{'A': 'B': 'C': 'D:E', 'F': 'G'}
として解析されるようになりました。
同じ
mongoc_bulk_operation_t
でmongoc_bulk_operation_execute
を繰り返し呼び出すと、エラーが生成されます。パブリックAPIの関数宣言に
__cdecl
呼び出し規則を一貫して適用します。mongoc_client_set_ssl_opts
はプールされたmongoc_client_t
を無視し、エラーをログに記録します。クライアントを生成する前に、mongoc_client_pool_set_ssl_opts
を使用してmongoc_client_pool_t
で TLS オプションを設定します。mongoc_client_set_ssl_stream_initiator
はプールされたmongoc_client_t
を無視し、エラーをログに記録します。次の
pkg-config
ファイルの名前を変更します。libmongoc-1.0
: 名前を に変更mongoc2
libmongoc-static-1.0
: 名前を に変更mongoc2-static
mongoc-1.0
CSpecパッケージを削除します。代わりに、次の例に示すように、mongoc
を使用して、インポートするバージョンまたはバージョン範囲を指定します。find_package(mongoc 1.30...2.0) インポートされた次のターゲットの名前を変更します。
mongo::mongoc_static
: 名前を に変更mongoc::static
mongo::mongoc_shared
: 名前を に変更mongoc::shared
MONGOC_DEFAULT_IMPORTED_LIBRARY_TYPE
CMax オプションの値に応じて静的ライブラリまたは共有ライブラリのいずれかを指すmongoc::mongoc
ターゲットを追加します。このオプションを設定せず、両方のライブラリ タイプが利用可能な場合、mongoc::mongoc
は静的ライブラリを使用します。
バージョン1.29.0
libmongoc v1.29.0 での重大な変更
libmongoc
の 1.29.0 リリースには、次の重大な変更が含まれています。
Visual Studio 2013 のサポートを廃止します
使用中の暗号化機能をサポートするために、
libmongocrypt
依存関係の必要なバージョンを 1.12.0 に引き上げます
バージョン1.28.0
libbson v1.28.0 での重大な変更
libbson
の 1.28.0 リリースには、次の重大な変更が含まれています。
自動
ccache
の検出と使用を排除しました削除
Mongo_USE_CCACHE
libmongoc v1.28.0 での重大な変更
libmongoc
の 1.28.0 リリースには、次の重大な変更が含まれています。
ワイヤプロトコルの最小バージョンを
6
から7
に引き上げます使用中の暗号化をサポートするために必要な
libmongocrypt
バージョンを v1.11.0 に引き上げます
バージョン1.27.0
libmongoc v1.27.0 での重大な変更
libmongoc
の 1.27.0 リリースには、次の重大な変更が含まれています。
使用中の暗号化 をサポートするために、libmongocrypt の必要バージョンを 1.10.0 に引き上げます。これは CSpec オプション
ENABLE_CLIENT_SIDE_ENCRYPTION
に対応します。
バージョン1.26.2
libmongoc v1.26.2 での重大な変更
libmongoc
の 1.26.2 リリースには、次の重大な変更が含まれています。
デフォルトでは 、 はWindows上の Cyrus SASL を使用したプラグインのロードを無効にします。 再度有効にするには、CMax オプション
CYRUS_PLUGIN_PATH_PREFIX
を Cyrus SASL プラグインの絶対パス プレフィックスに設定します。
バージョン1.24
v1.24 でのlibmongoc 重大な変更
libmongoc
の 1.24 リリースには、次の重大な変更が含まれています。
Queryable Encryptionを使用するにはMongoDB Serverバージョン 7.0 以降が必要
サーバー リリースの互換性の変更
サーバー リリースの互換性の変更とは、MongoDB Server の一連のバージョンのサポートを廃止するドライバーに対する変更です。
ドライバーは、サポート終了(EOL)に達すると、MongoDB Server バージョンのサポートを終了します。
EOL 製品のMongoDBサポートの詳細については、 サポート レガシー ポリシー を参照してください。