次の新機能をご覧ください。
2.25の新機能
重要
MongoDB Server 4.2 のサポートは、このリリースで廃止され、後のバージョンで削除される予定です。MongoDB Server 4.2 以前を使用している場合は、MongoDB Server 4.4 以降にアップグレードしてください。
Ruby ドライバー 2.25 リリースには、次の新機能、変更点、バグ修正が含まれています。
使用中の暗号化が有効になっているコレクションを参照する集計パイプラインで
$lookupを使用するためのサポートを追加します。Queryable Encryption コレクションの暗号化されたフィールドマップを定義する際に、
keyIdの代わりにkeyAltNameフィールドを使用してデータキーを指定できます。KMIP マスターキーの
delegatedオプションのサポートを追加します。trueに設定すると、KMIP サーバーはデータキーの暗号化と復号化を実行するため、暗号化のキーがサーバーから離れることはありません。type:name形式を使用する名前付き KMS プロバイダーのサポートを追加します。mongocrypt_kms_ctx_failがfalseを返すときに発生するエラーをラップします。
コマンド応答からカーソルを作成する
Database#cursor_commandメソッドを追加します。Mongo::Clientに設定された場合、レガシー再試行のチューニングオプション:max_read_retries、:read_retry_interval、:max_write_retriesは非推奨になります。これらのオプションは非推奨のレガシー再試行機能にのみ適用されます。現代の再試行可能な読み取りと書き込み (write)はデフォルトで有効になっており、これらのオプションは無視されます。tlsまたはsslURI オプションに無効なブール値を渡すとエラーが発生します。mongocrypt_kms_ctx_failがfalseを返すときに発生するエラーをラップします。URI レンダリングと
Mongo::Error::InvalidURIエラー メッセージの認証情報を難読化します。SRV モニター スレッドを保護し、
raise_on_invalidオプションの処理を修正します。負荷分散されたトポロジーでの接続リークを修正します。
secondaryPreferredの読み込み設定 (read preference)の動作を修正し、サーバー選択仕様に準拠させます。Binary.wrap_string内でMemoryPointerオブジェクトを活かし続けて、プレマチュアなガーベージ コレクションを防止します。モニターのラウンドトリップ時間チェックからの SDAM イベントの公開を停止します。
原因によりコンシステントなセッションで書き込み (write)に
afterClusterTimeを送信します。ネットワークエラーのためにサーバーが
Unknownとマークされると、モニタリング接続を閉じます。検索インデックスヘルパーコマンドへの読み取り保証と書込み保証 (write concern)の追加を停止します。
このリリースの詳細については、 Githubの v2.25.0 リリースノート を参照してください。
2.24.1の新機能
Ruby ドライバー 2.24.1 リリースには、次の新機能、変更点、バグ修正が含まれています。
OpenTelemetry トレースが機密コマンドをキャプチャするのを防止します。
falseがデフォルトのMongo::Config.include_server_address_in_errorsオプションを追加します。有効にすると、Mongo::Error::OperationFailureとMongo::Error::BulkWriteErrorメッセージにはエラーを生成したサーバーのホストする とポートが含まれます。コマンド モニタリング仕様に合わせて、コマンド イベントに
databaseNameプロパティを追加します。スナップショット セッションで
atClusterTimeを公開します。
このリリースの詳細については、 Githubの v2.24.1 リリースノート を参照してください。
2.24 の新機能
重要
このリリースでは、 MongoDB Serverバージョン 3.6 および 4.0 のサポートが終了します。MongoDB Server 4.0 またはそれ以前のバージョンを使用している場合は、バージョン 4.2 以降にアップグレードしてください。
Ruby ドライバー 2.24 リリースには、次の新機能、変更点、バグ修正が含まれています。
:server_monitoring_mode接続オプションを導入します。詳細については、接続オプションガイドの「サーバーの選択」セクションを参照してください。Ingress 接続レート制限機能のサポートを追加します。過負荷サーバーに接続した際の動作を改善するには、
:enable_overload_retargetingと:max_adaptive_retriesオプションを使用します。これらのオプションを学ぶには、 接続オプションガイドの「読み取り操作と書き込み操作」セクションを参照してください。MongoDB Intelligent ワークロード マネジメント (IWM)のサポートを追加します。Ruby ドライバーは、書き込み (write)ブロックのシナリオを正常に取り扱い、高負荷条件での接続確立を最適化してアプリケーションの可用性を維持するようになりました。IWM についてさらに学ぶには、Atlas ドキュメントの「書き込み (write)ブロック」を参照してください。これらの機能は、MongoDB 9.0 以降を実行している Atlas クラスターで使用できます。
このリリースの詳細については、 Githubの v2.24 リリースノート を参照してください。
2.23の新機能
重要
MongoDB Serverバージョン 3.6 および 4.0 のサポートはこのリリースでは非推奨となり、バージョン 2.24 で削除されます。MongoDB Server 4.0 またはそれ以前のバージョンを使用している場合は、バージョン 4.2 以降にアップグレードしてください。
Ruby ドライバー 2.23 リリースには、次の新機能、変更点、バグ修正が含まれています。
OpenTelemetry でドライバー操作を追跡するためのサポートを追加します。有効にすると、この機能はRubyドライバー操作と対応するサーバーコマンドを追跡します。
tracingオプションをtrueに設定することで、Mongo::Clientインスタンスでトレースを有効にするか、OTEL_RUBY_INSTRUMENTATION_MONGODB_ENABLED環境変数を介してグローバルに設定できます。クライアント側フィールドレベル暗号化(CSFLE) タイプをRubyタイプに変換するための
csfle_convert_to_ruby_types構成オプションを追加します。クライアントのメタデータログのプラットフォームフィールドにRubyエンジン(例、)を追加します。
ラベルが 3 つ未満の有効なホスト名を使用する SRV 接続文字列を許可します。
は
srv_max_hostsURI オプションを正しく実装します。Ruby 4.0 のサポートを追加しました。
ゼロ(無限)と正のタイムアウト値を正しく処理することで、
with_transactionのクライアント側操作タイムアウト(CSO)処理を修正します。
このリリースの詳細については、 Githubの v2.23 リリースノート を参照してください。
2.22の新機能
Rubyドライバー 2.22 リリースには、次の新機能、変更、改善が含まれています。
update_oneメソッドとreplace_oneメソッドの並べ替えオプションを追加します。詳しくは、update_one および replace_one. のAPIドキュメントを参照してください。接続プールのチェックアウト中に
SocketErrorの処理に再試行ロジックを追加します。サーバーが
unknownとしてマークされている場合に発生するArgumentErrorを修正します。
このリリースの詳細については、 Githubの v2.22 リリースノート を参照してください。
2.21.1の新機能
Rubyドライバー 2.21.1 リリースには、次の新機能、変更点、改善点が含まれています。
Mongo::SearchIndex::View#create_oneとMongo::SearchIndex::View#create_many検索インデックス作成メソッドにtypeパラメータを追加します。これにより、 MongoDB ベクトル検索インデックスをプログラムで作成できます。詳細と例については、MongoDB 検索インデックスおよびMongoDB ベクトル検索インデックスのガイドを参照してください。Ruby 3.3 との互換性を追加します。詳細については、互換性を参照してください。
BSON v5.1
bson gem は、 RubyにおけるBSON仕様の実装です。bson v5.1Rubyドライバー v2.21.1 に付属リリース。
bson 5.1 リリースには、次の新機能、変更点、改善点が含まれています。
数値のベクトルを表す
BSON::Vector型を追加します。詳細については、BSONガイドのBSON::Vectorセクションを参照してください。BSON::Documentオブジェクトでは、#deep_symbolize_keys!メソッドと#symbolize_keys!メソッドの使用はサポートされていません。以前のバージョンでは、#symbolize_keys!メソッドはBSON::Documentで使用されるとArgumentErrorを発生させましたが、#deep_symbolize_keys!はそのように動作せず、BSON::DocumentではなくHashのみを返します。このリリースでは、
BSON::Documentインスタンスで#deep_symbolize_keys!を使用する際の警告が追加されました。bsonv6.0 では、このアクションはエラーになります。
このリリースの詳細については、 Githubの v2.21.1 リリースノート を参照してください。
2.21の新機能
Rubyドライバー 2.21 リリースには、次の新機能が含まれています。
クライアント側操作タイムアウト(CSO)機能をサポートし、タイムアウトに関連するオプションのほとんどを単一の
timeout_msオプションの下で統合します。MongoDB Serverバージョン 8.0 をサポートします。
Queryable Encryptionによる範囲 v2 クエリのサポート(新しい
trim_factorパラメータを含む)Queryable Encryptionの詳細については、 MongoDB ServerマニュアルのQueryable Encryptionを参照してください。
このリリースの詳細については、 Githubの v2.21 リリースノート を参照してください。
2.20の新機能
Rubyドライバー 2.20 リリースには、次の新機能が含まれています。
Ruby 2.5 および 2.6 のサポートを廃止します。Ruby 2.7 および JRuby 9.2 のサポートを廃止し、次のマイナー ドライバー バージョンで廃止します。JRuby 9.4 のサポートを追加します。
新しいリリースの Ruby- BSONバージョン 5.0 をサポートします。
ホストとオプションの間にスラッシュを入れない接続文字列を許可します。例、
mongodb://example.com?w=1とmongodb://example.com/?w=1は両方とも現在有効な接続文字列です。分析目的で、クライアント環境のコンテナランタイムとオーケストレーションメタデータをサーバーに送信します。
ホストを CosmosDB ( Azure)または DocumentDB(Amazon)のインスタンスとして検出すると、ログに警告メッセージを書込みます。
可能な場合は、 シャーディングされたトポロジー内の別の
mongosインスタンスで読み取りまたは書込み操作を再試行します。
このリリースの詳細については、 Githubの v2.20 リリースノート を参照してください。