Docs Menu

新機能

MongoDB Cドライバーは、libbsonlibmongoc の 2 つのライブラリで構成されています。 このページでは、ドライバー ライブラリの各バージョンで行われた変更と非推奨について説明します。

次の新機能をご覧ください。

次のセクションでは、 Cドライバーの 2.0.0 リリースの変更について説明します。

重要

削除

2.0.0ドライバーのリリースにより、多くの非推奨のタイプとメソッドが削除されます。削除の完全なリストを表示するには、 v2.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 の 2.0.0 リリースには次の変更が含まれています。

  • batchSize:0 オプションを mongoc_client_watchmongoc_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_tmongoc_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 は静的ライブラリを使用します。

このリリースの詳細については、 v2.0 リリースノートを参照してください。

次のセクションでは、 Cドライバーの 1.30.3 リリースの変更について説明します。

libbson の 1.30.3 リリースには次の変更が含まれています。

  • v2.0 のリリースに先立ち、 は bson の新しい Cake パッケージとインポートされたターゲットを追加し、CSpecプロジェクトを変更せずに両方のメジャー バージョンをサポートできるようにします。

    • 新しい名前で bson をインポートするには、bsonパッケージの find_package を呼び出します。新しいインポートされたターゲット名は、bson::staticbson::sharedbson::bson です。

libmongoc の 1.30.3 リリースには次の変更が含まれています。

  • v2.0 のリリースに先立ち、 は bsonmongoc の新しい CSpec パッケージとインポートされたターゲットを追加し、CSpecプロジェクトを変更せずに両方のメジャー バージョンをサポートできるようにします。

    • 新しい名前で mongoc をインポートするには、mongocパッケージの find_package を呼び出します。新しいインポートされたターゲット名は、mongoc::staticmongoc::sharedmongoc::mongoc です。

    • 新しい名前で bson をインポートするには、bsonパッケージの find_package を呼び出します。新しいインポートされたターゲット名は、bson::staticbson::sharedbson::bson です。

このリリースの詳細については、 v1.30.3 リリースノートを参照してください。

次のセクションでは、 Cドライバーの 1.30.0 リリースの変更について説明します。

libbson の 1.30.0 リリースには次の変更が含まれています。

  • Debian 9 およびDebian 10 のサポートを廃止します

  • ネストされたドキュメントのBSONからJSONへの直列化を向上させます

  • bson_as_json_with_opts() 関数の切り捨てられた出力を更新し、有効な UTF-8 シーケンスを分裂なくなります

  • 生成されたJSONテキストを次の方法で更新します。

    • すべての空の配列とドキュメントを 1 つのスペースで直列化

    • 最大再帰制限によりドライバーが省略する配列を { ... } ではなく [ ... ] に直列化

    • 最大再帰制限をレガシーCodeWscope ドキュメントに適用

  • bson_append_array_builder_begin() 関数の呼び出しが失敗した後にリークされる出力パラメータを修正します

libmongoc の 1.30.0 リリースには次の変更が含まれています。

  • Debian 9 およびDebian 10 のサポートを廃止します

  • 構造化ログのサポートを追加しました。 この機能を構成するには、mongoc_client_set_structured_log_opts() 関数と mongoc_client_pool_set_structured_log_opts() 関数を使用します。

  • 使用中の暗号化データ暗号化キーのキャッシュライフタイム構成のサポートを追加します。 この機能を構成するには、mongoc_auto_encryption_opts_set_key_expiration() 関数と mongoc_client_encryption_opts_set_key_expiration() 関数を使用します。

    使用中の暗号化の詳細については、 MongoDB Serverマニュアルの「 使用中の暗号化 」を参照してください。

  • 更新操作と置換操作の sort オプションのサポートを追加します。

  • mongoc_bulkwrite_new() 関数と mongoc_bulkwrite_set_client() 関数を使用して、クライアントなしで mongoc_bulkwrite_t タイプを構築するためのサポートを追加します。

  • mongoc_server_description_new_copy() 関数のパフォーマンスを向上させます

  • SDAM 仕様に必要な次の APMイベントの修正が含まれています。

    • server_openingイベントを提供した後、ドライバーは topology_closed を提供する前に、対応する server_closedイベントを提供する必要があります

    • topology_closedイベント を送信する前に、ドライバーは new_descriptionUnknown タイプの topology_changedイベントを配信します。

  • ドライバーがクライアントの一括書き込みの冗長な結果に挿入されたドキュメントID を報告するときにクラッシュする可能性を修正します

このリリースの詳細については、 v1.30 リリースノートを参照してください。

Cドライバーの 1.29.0 リリースにはいくつかの変更が含まれています。

libbson の 1.29.0 リリースには次の変更が含まれています。

  • bson_string_t と関連する関数を非推奨にします

  • BSON_MEMCHECK によるコンパイルが非推奨になります

  • bson_in_range_*() 関数と bson_cmp_*() 関数を廃止します

  • bson_atomic_*() 関数と bson_thrd-yield() 関数を廃止します

  • bson_as_json() 関数と bson_array_as_json() 関数を廃止します

libmongoc の 1.29.0 リリースには次の変更が含まれています。

  • mongoc_client_command を廃止します。 代わりに mongoc_client_command_simple を使用してください。

  • mongoc_database_command を廃止します。 代わりに mongoc_database_command_simple を使用してください。

  • mongoc_collection_command を廃止します。 代わりに mongoc_collection_command_simple を使用してください。

  • Visual Studio 2013 のサポートを廃止します

  • 使用中の暗号化機能をサポートするために、libmongocrypt 依存関係の必要なバージョンを 1.12.0 に引き上げます

このリリースの詳細については、 v1.29 リリースノートを参照してください。

Cドライバーの 1.28.0 リリースにはいくつかの変更が含まれています。

libbson の 1.28.0 リリースには次の変更が含まれています。

  • bson_validate_with_error_and_offset() 関数を追加します

  • 自動 ccache の検出と使用を排除しました

  • Mongo_USE_CCACHE を削除します

  • 使用中の暗号化範囲クエリのサポートを追加しました

  • mongoc_collection_insert_one には挿入IDが含まれます

  • 新しい一括書込みAPI mongoc_bulkwrite_t を追加します

  • Adds serverMonitoringMode URI option

  • 最小ワイヤプロトコルバージョンを 6 から 7 に引き上げます

  • 使用中の暗号化をサポートするには、必要な libmongocrypt バージョンを v1.11.0 に引き上げます

  • *_hint オプションを廃止します。 代わりに、*_server_id オプションを使用してください。

    • mongoc_bulk_operation_set_hint を廃止します。 代わりに、mongoc_bulk_operation_set_server_id を使用してください。

    • mongoc_bulk_operation_get_hint を廃止します。 代わりに、mongoc_bulk_operation_get_server_id を使用してください。

    • mongoc_cursor_set_hint を廃止します。 代わりに、mongoc_cursor_set_server_id を使用してください。

    • mongoc_cursor_get_hint を廃止します。 代わりに、mongoc_cursor_get_server_id を使用してください。

  • ENABLE_SSL=LIBRESSLmongoc_stream_tls_libressl_new を廃止します。

  • Windowsプラットフォームで ENABLE_SASL=CYRUSCYRUS_PLUGIN_PATH_PREFIX オプションを廃止します。

このリリースの詳細については、 v1.28 リリースノートを参照してください。

Cドライバーの 1.27.6 リリースにはいくつかの変更が含まれています。

libbson の 1.27.6 リリースには次の変更が含まれています。

  • 特殊なBSON型の不正な拡張JSONの処理を修正しました

libmongoc の 1.27.6 リリースには次の変更が含まれています。

  • TSAN 警告を修正しました

  • C23 コンパイルを修正しました

  • トランザクション内のコマンド エラーに期待される動作のドキュメント

Cドライバーの 1.27.5 リリースにはいくつかの変更が含まれています。

libbson の 1.27.5 リリースには次の変更が含まれています。

  • bson_append_utf8 における大規模な文字列の処理を修正しました

libmongoc の 1.27.5 リリースには次の変更が含まれています。

  • bool または _Bool がマイクロである環境で発生する可能性のあるビルド エラーを修正しました

Cドライバーの 1.27.4 リリースにはいくつかの変更が含まれています。

libbson の 1.27.4 リリースには次の変更が含まれています。

  • Visual Studio 2013 でのビルドの問題を修正しました

libmongoc の 1.27.4 リリースには次の変更が含まれています。

  • 不正なワイヤプロトコルメッセージの読み取りがクラッシュする可能性を修正します

  • Visual Studio 2013 でのビルドの問題を修正しました

Cドライバーの 1.27.3 リリースにはいくつかの変更が含まれています。

libbson の 1.27.3 リリースには次の変更が含まれています。

  • 新しいコード署名や依存関係の追跡など、開発プロセスに関する変更を導入します。 動作またはAPI の変更はありません。

libmongoc の 1.27.3 リリースには次の変更が含まれています。

  • バンドルされた zlib を 1.2.3 から 1.3.1 にアップグレードします

Cドライバーの 1.27.2 リリースにはいくつかの変更が含まれています。

libbson の 1.27.2 リリースには次の変更が含まれています。

  • タイムゾーン内のコロンの解析を修正しました

  • bson_iter_visit_all でサブドキュメントを初期化できない場合のエラーを修正しました

libmongoc の 1.27.2 リリースには次の変更が含まれています。

  • リモート サーバーへの残った接続を閉じます

  • SRV 検索よりも TCP 検索を優先するように環境変数 MONGO_EXPERIMENTAL_SRV_PREFER_TCP を確認します

Cドライバーの 1.27.1 リリースにはいくつかの変更が含まれています。

libbson の 1.27.1 リリースには次の変更が含まれています。

  • bson_string_newbson_string_append における大規模な文字列の処理を修正しました

このバージョンは libbson バージョンと一致するように増加しますが、1.27.0 以降では変更はありません。

Cドライバーの 1.27.0 リリースにはいくつかの変更が含まれています。

このバージョンは libbson バージョンと一致するように増加しますが、1.26.2 以降では変更はありません。

libmongoc の 1.27.0 リリースには次の変更が含まれています。

  • 使用中の暗号化をサポートするために、libmongocrypt の必要バージョンを 1.10.0 に引き上げます。 これは CMax オプション ENABLE_CLIENT_SIDE_ENCRYPTION に対応します。

  • クライアントが空のパスワードで構成されている場合にクラッシュする可能性を修正しました

  • コマンド イベント mongoc_apm_command_failed_get_database_namemongoc_apm_command_succeeded_get_database_name にデータベース名を追加します

  • 使用中の暗号化のための廃止された KMIPプロトコルをサポート

  • クライアントごとのソケット タイムアウト設定を有効にします

Cドライバーの 1.26.2 リリースにはいくつかの変更が含まれています。

libbson の 1.26.2 リリースには次の変更が含まれています。

  • bson_strfreev の反復を修正しました

libmongoc の 1.26.2 リリースには次の変更が含まれています。

  • デフォルトでは 、 はWindows上の Cyrus SASL を使用したプラグインのロードを無効にします。 再度有効にするには、CMax オプション CYRUS_PLUGIN_PATH_PREFIX を Cyrus SASL プラグインの絶対パス プレフィックスに設定します。

  • データが不完全な破損したチャンクで mongoc_gridfs_file_readv を呼び出した場合にハングする可能性を修正しました

  • 4.2 より前のバージョンのMongoDBサーバーに接続する場合のレガシー消費カーソルプロトコルを使用するアサートを修正します

Cドライバーの 1.26.1 リリースにはいくつかの変更が含まれています。

libbson の 1.26.1 リリースには次の変更が含まれています。

  • bson_array_builder_t に整合性のある割り当てを使用します

libmongoc の 1.26.1 リリースには次の変更が含まれています。

  • 64 ビット time_t を使用した 32 ビットのコンパイルを修正しました

Cドライバーの 1.26.0 リリースにはいくつかの変更が含まれています。

このバージョンは libmongoc バージョンと一致するように増加しますが、1.25.4 以降では変更はありません。

libmongoc の 1.26.0 リリースには次の変更が含まれています。

  • 名前付き KMS プロバイダーをサポート

  • シャーディングされたクラスターでの再試行を別の mongos にリダイレクトします

  • ビルドを容易にするためにソースに VERSION_CURRENTファイルを追加します

  • より多くのエラーが再試行可能であると考慮します