次の新機能をご覧ください。
5.8 の新機能
5.8 ドライバー リリースには、次の変更、修正、機能が含まれています。
ベクトル検索インデックス定義㎎の型付きビルダ API を追加します。
$rerank集計ステージのサポートを追加します。MongoDB 8.3以降を実行している Atlas クラスターに接続すると、Aggregates.rerank()ビルダ メソッドを使用してこのステージを作成できます。$searchパイプライン ステージでのvectorSearch演算子のサポートを追加します。SearchOperator.vectorSearch()ビルダ メソッドを使用して近似最近傍探索(ANN)ベクトル検索を実行することができます。また、SearchOperator.vectorSearchExact()を使用して厳密最近傍探索(ENN)を実行することもできます。返されるVectorSearchOperatorは、詞書プレフィルターを適用するfilter()メソッドをサポートします。VectorSearchIndexDefinitionクラスのstoredSource()メソッドを使用して、ベクトル検索インデックス定義で保存されたソースを設定するためのサポートを追加します。VectorSearchOptionsクラスのreturnStoredSource()メソッドを使用して、$vectorSearch結果で保存されたソース フィールドのリクエストのサポートを追加します。中間の割り当てを削除することで、
RawBsonDocumentのエンコードとデコードのパフォーマンスを最適化します。Micrometer が存在しない場合の OSGi バンドル解決の失敗を修正します。
Javadoc ドキュメントを
MongodbObservationおよびMongodbObservationContextクラスに追加します。libmongocryptバージョンを 1.18.1 にアップグレードします。
このリリースの詳細については、 Githubの v5.8 リリースノート を参照してください。
5.7 の新機能
5.7 ドライバー リリースには、次の変更、修正、機能が含まれています。
重要: 今後のマイナー リリースでは MongoDB Server バージョン 4.2 のサポートが削除され、サポートされる最低バージョンが 4.4 に引き上げられます。この変更は、MongoDB ソフトウェア ライフサイクル スケジュールに準拠しています。
重大な変更に対応するために、アプリケーションに変更を加えることをお勧めします。サーバーのバージョンのアップグレードの詳細については、 MongoDB Serverマニュアルのリリースノートのセクションを参照してください。
Scala 3 のサポートを追加しました。
ベクトル検索 API の一部として自動埋め込みサポートを追加します。
Reactive Streams ドライバーに Microsoft/OpenTelemetry トレースのサポートを追加し、一般的な Microsoft サポートの改善を含みます。
Stack Overflow エラーを防ぐために、スタックセーフな非同期ループのサポートを追加します。
ラウンドトリップ時間(RTT)のバリエーションをより考慮するようにクライアント側のタイムアウト処理が改善され、タイムアウトに関連するさまざまな小さな改善が行われます。
余計なサーバー選択を避けるために、
ConnectionSourceを再利用します。RawBsonDocumentエンコーディングの最適化されたコーデック パスを復元し、パフォーマンスの低下を修正します。AsyncCommandCursor内の空のgetMore応答間の接続を解放し、アイドル変更ストリームがmaxPoolSizeに達したときに接続プールが枯渇するのを防ぎます。暗号化クライアントは
writeConcern過半数を使用するようになりました。KMS からの予期しないストリーム終了エラーを処理します。
JsonPrimitive数値のJsonBsonEncoder解析を修正しました。ここでは、科学的に形式された数値は単純な Int または Longs として解析されていました。ServerMonitorスレッド名を簡素化し、一部のモニタリング システムでは処理できない=文字を削除します。任意の のKotlin BSONデコードを修正しました。
libmongocryptを 1.17.3 にアップグレードします。Zstandard 解凍には
ZstdInputStreamNoFinalizerを使用します。Netty を最新バージョンに更新します。
最新のセキュリティ修正のために Snappy をアップデートしました。
JRit 5 を最新バージョンに更新します。
クラスターからサーバーを削除するときに、ログレベルを警告に合わせて調整します。
5.6 の新機能
5.6 ドライバー リリースには、次の変更、修正、機能が含まれています。
Queryable Encryption のプレフィックス、サフィックス、サブストリング クエリの実験的なサポートを追加します。QE の詳細については、「 使用中の暗号化 」を参照してください。
注意
試験用機能
Queryable Encryption のプレフィックス、サフィックス、サブストリングのクエリは不安定であり、一般提供(GA)されるまでセキュリティは保証されません。実験的なワークロードでのみ使用してください。
ChangeStreamDocumentオブジェクトにnsTypeフィールドを追加します。このフィールドには、 変更イベントの名前空間タイプ(COLLECTION、TIMESERIES、またはVIEW)が含まれます。OIDC認証の実験的なクライアント側操作タイムアウト(COT)サポートを追加します。
注意
試験用機能
COT 機能は実験的なものであり、今後のドライバー リリースで変更される可能性があります。
COT に
timeoutMSが設定されている場合、ドライバーはmaxWaitTime接続設定の値を無視します。MongoClientクラスにappendMetadata()メソッドを追加します。このメソッドを使用して、既存のクライアントのメタデータにメタデータを追加できます。最大メタデータサイズは 512 MB です。RewrapManyDataKeyOptionsクラスにパブリック コンストラクターを追加します。AsyncReadOperationインターフェースとAsyncWriteOperationインターフェースをReadOperationインターフェースとWriteOperationインターフェースに統合します。Operationsクラスのビルダ メソッドを使用して、読み取り操作と書込み操作を作成できます。MongoNamespace.COMMAND_COLLECTION_NAME定数を廃止します。セッション内で OIDC の再認証を妨げるバグを修正します。
@BsonDiscriminatorで注釈が付けられた POJO を直列化する際、プロパティのreadNameが弁別子キーと一致する場合、ドライバーはそのフィールドを1 回だけ直列化します。CommandCursorResultインスタンスでnext()メソッドまたはtryNext()メソッドを呼び出すと、ドライバーはCommandCursorResult.resultsプロパティをクリアしてメモリを解放します。PojoBuilderHelperクラスは、抽象クラスとインターフェースのプロパティを含むプロパティモデルを作成します。ドライバーは、クラスターのトポロジーが変更されると、次のイベントを公開してログに記録します。
ClusterOpeningEvent:トポロジーが開いたときに公開ClusterDescriptionChangedEvent:トポロジーの説明が変更されたときに公開ClusterClosedEvent:トポロジーが閉じたときに公開
ドライバーは、次のいずれかの理由でプライマリレプリカセットメンバーが古くなった場合、
MongoStalePrimaryExceptionをスローします。新しいプライマリ ノードが選出または検出されます。
プライマリ ノードの
electionIdまたはsetVersionフィールドの値は、他のレプリカセットノードのこれらのフィールドの値と一致しません。
レプリカセットの詳細については、 MongoDB Serverマニュアルのレプリケーションを参照してください。
5.5.1の新機能
5.5.1 ドライバー パッチ リリースには次の変更が含まれています。
- トランザクションで実行される操作を含む、セッションで実行される操作によってトリガーされると、OIDC 再認証が失敗する問題を修正します。
5.5 の新機能
重要
MongoDB Server 4.0 のサポートの削除
Kotlin 同期ドライバー v5.5はMongoDB Server 4.0 のサポートを除きます。サーバーの互換性のあるバージョンの詳細については、互換性を参照してください。
5.5 ドライバー リリースには、次の変更、修正、機能が含まれています。
- ドライバー パフォーマンス ベンチマークに反映されるパフォーマンスの向上を導入します。パフォーマンス ベンチマーク テストの結果を表示するには、次のパフォーマンスの改善セクションを参照してください。
パフォーマンスの向上
このセクションの表は、同期Javaドライバーのパフォーマンス テストの結果を示しています。テストは、次の構成のMongoDB Server 8.0 配置で実行されました。
localhostで実行中のネットワークレイテンシは無視できます。高レイテンシの環境では、パフォーマンスの大きな改善は見られない可能性があります。認証が無効になっています。
TLS が無効になっています。
すべてのMongoDB Javaドライバーでも、改善された driver-core APIを共有しているため、同様のパフォーマンス向上が予想されます。
標準トランスポート設定
次の表は、標準のトランスポート設定で構成されたドライバーの v5.5 のパフォーマンス テストの結果を示しています。各行には、テストされた機能、パフォーマンスの割合の改善、およびz スコアが含まれます。
機能 | 改善率 | Z スコア |
|---|---|---|
BSON深度デコード | 19.44% | 5.4 |
ディープBSONエンコーディング | 102% | 22.8 |
多数を検索し、カーソルを空にする | 25.08% | 13.72 |
IDで 1 つを検索 | 2.7% | 3.16 |
平面BSONデコード | 31.2% | 9.38 |
平面BSONエンコーディング | 199.5% | 12.34 |
BSON の完全なデコード | 16.5% | 7.23 |
BSONでの完全なエンコーディング | 147.3% | 10.39 |
JSON- LD マルチファイルのインポート | 21.8% | 8.21 |
大規模なドキュメントを含むクライアント一括挿入 | 91.3% | 24.44 |
大規模なドキュメントを含むコレクションの一括挿入 | 96.5% | 8.79 |
大きなドキュメントの一括挿入 | 93.3% | 8.11 |
小さなドキュメントの一括挿入 | 39.3% | 5.72 |
大きなドキュメントを持つ 1 つを挿入 | 82.4% | 7.28 |
小さなドキュメントを含むクライアント一括挿入 | 49.5% | 17.99 |
小さなドキュメントを含むコレクションの一括挿入 | 47.8% | 6.44 |
Netty Transport Settings
次の表は、Netty トランスポート設定で構成されたドライバーの v5.5 に対するパフォーマンス テストの結果を示しています。各行には、テストされた機能、パフォーマンスの割合の改善、およびz スコアが含まれます。
機能 | 改善率 | Z スコア |
|---|---|---|
多数を検索し、カーソルを空にする | 40.3% | 14.81 |
IDで 1 つを検索 | 4.4% | 4.12 |
JSON- LD マルチファイルのインポート | 16.9% | 3.77 |
大規模なドキュメントを含むクライアント一括挿入 | 54.8% | 14.49 |
大規模なドキュメントを含むコレクションの一括挿入 | 104.9% | 38.72 |
大きなドキュメントの一括挿入 | 74.6% | 65.55 |
大きなドキュメントを持つ 1 つを挿入 | 66.6% | 58.65 |
小さなドキュメントを含むクライアント一括挿入 | 36.1% | 15.41 |
小さなドキュメントを含むコレクションの一括挿入 | 39.3% | 37.38 |
小さなドキュメントの一括挿入 | 35.1% | 41.51 |
Tip
ドライバー パフォーマンス ベンチマーク テストの方法の詳細については、 パフォーマンス ベンチマークの仕様 を参照してください。
5.4 の新機能
5.4 ドライバー リリースには、次の変更、修正、機能が含まれています。
- 直列化中のスニペットケース変換のために
bson-kotlinxにBsonConfigurationのサポートを追加します。詳細については、直列化ガイドの「スニペット ケース命名戦略の実装」セクションを参照してください。
CSFLE と QE の
$lookup操作をサポートします。詳細については、サーバー マニュアルの次の参照を参照してください。MONGODB-AWS認証メカニズムをテストするために、 Amazon Web Services SDK の依存関係を 2.30.31 と 1.12.782 に更新します。ClientUpdateOneOptionsClientReplaceOneOptionsクラスと クラスに並べ替えオプションを追加します。この変更により、クライアントの一括書き込みで更新操作と置換操作のソート順序を設定できるようになります。詳細については、 一括書込み操作ガイドの「 更新操作 」および「 置換操作 」のセクションを参照してください。OIDC認証のKubernetesサポートを追加します。詳細については、 エンタープライズ認証メカニズムガイドの「MONGODB-OIDC: Kubernetes」セクションを参照してください。
次のMongoDB 検索するクエリ演算子のファーストクラスのサポートを追加します。
phraseregexqueryStringequalsmoreLikeThisinwildcard
詳細については、 集計ガイドの「MongoDB検索」セクションを参照してください。
close()を呼び出すと、操作タイムアウトに影響せずにtimeoutMS設定を更新するようにカーソルを更新します。hintオプションを指定して、distinct()メソッドを呼び出すときにインデックスを使用できるようにします。
このリリースの変更の完全なリストを表示するには、 Githubの v5.4 リリースノートを参照してください。
5.3 の新機能
5.3ドライバー リリースには、次の新機能、改善点、修正が含まれています。
ベクトルのストレージと検索用のBSONバイナリ サブタイプ 9 を実装するために
BinaryVectorクラスを追加します。 このクラスは、Doubleインスタンスのリストと比較して、値のより効率的なストレージを提供します。 ベクトルに含まれる要素の型に基づいて、次のベクトル型を作成できます。Int8BinaryVector: 8 ビット符号付き整数のベクトルFloat32BinaryVector: 浮動小数点数のベクトルPackedBitBinaryVector: バイナリ量子化ベクトル(ベータで、一般利用可能になるまでに変更される可能性があります)
この機能の詳細については、Atlas ドキュメントの「 ベクトル量化 」を参照してください。 BinaryVector
接続プールの実装から明示的な均等性を削除します。 この変更により、多くのアプリケーションスレッドで
MongoClientインスタンスを使用すると、スループットが向上する可能性があります。 ただし、この変更により 追尾レイテンシが増加する可能性があります。
ビルダクラスメソッドをデータクラスプロパティで直接使用するためのサポート。詳しくは、「データ クラスでビルダを使用する」ガイドを参照してください。この機能は、このリリースで公開されたKotlin Syncドライバー拡張機能パッケージによってサポートされています。
クライアント一括書き込みAPI を実装し、同じ呼び出しで複数のデータベースとコレクションに対して書き込み操作を実行できます。この機能の詳細については、 一括書込み操作ガイドの「 クライアント一括書込み 」セクションを参照してください。
5.2 の新機能
重要
MongoDB Server 3.6 のサポートの削除
Kotlin 同期ドライバー v5.2はMongoDB Server 3.6 のサポートを除きます。サーバーの互換性のあるバージョンの詳細については、互換性を参照してください。
5.2ドライバー リリースには、次の新機能、改善点、修正が含まれています。
クライアント側操作タイムアウト(COT)の設定を有効にします。この機能を使用すると、
MongoClientインスタンスに単一のタイムアウトを設定して、そのクライアントで実行されるすべての操作に適用できます。詳細については、 「サーバー実行時間の制限」 のガイドを参照してください。COT 機能が有効になっている場合にのみ、次のタイムアウト オプションはドライバーによって無視されます。
waitQueueTimeoutMSsocketTimeoutMSwTimeoutMSmaxTimeMSmaxCommitTimeMS
重要
試験用機能
COT は実験的な機能であり、まだ本番環境には準備ができていません。この機能は現在のリリースでは任意であり、既存のタイムアウト オプションは引き続き機能します。
SearchIndexModelインスタンス の構築時に渡すことができるSearchIndexTypeクラスを追加します。この変更により、 Atlas Search またはベクトル検索インデックス の作成時にインデックスタイプを指定できるようになります。詳細については、MongoDB Search とベクトル検索インデックスのガイドを参照してください。SCRAM-SHA-1とSCRAM-SHA-256認証メカニズムを実装するアルゴリズムの実装を、構成された JCA プロバイダーに委任します。 この変更により、アプリケーションは構成された FIPS 準拠の JCA プロバイダーを使用して、より高いレベルのセキュリティを提供できるようになります。JVMドライバーのバージョン管理と一致するように mongodb-crypt 依存関係のバージョン管理を改訂します。
mongodb-cryptの将来のバージョンはドライバーと一緒にリリースされ、同じバージョン番号を共有します。mongodb-cryptの依存関係を v5.2.0 にアップグレードする必要がありますこのリリースのドライバーをアップグレードする際。詳細については、 「使用中の暗号化」ガイドを参照してください。サポートされているすべてのプラットフォームにネイティブ暗号化を実装ことにより、パフォーマンスが向上しました。 次のリストでは、オペレーティング システムに応じて、この改善を実装するために必要なアクションについて説明します。
Windows :
mongodb-cryptのバージョンを v 5.2.0にアップグレードします。Mac :
mongodb-cryptのバージョンを v 5.2.0にアップグレードします。Linux :
mongodb-cryptJARファイルにバンドルされているファイルを使用する代わりに、ファイルシステムにlibmongocrypt.soを直接インストールします。libmongocryptをインストールするためのLinux手順については、サーバー マニュアルを参照してください。 パッケージマネージャーを使用してlibmongocryptをインストールすると、 Java Native Access(JLA)は、追加の構成なしでそれを見つけます。 あるいは、LD_LIBRARY_PATH環境変数をlibmongocryptパッケージのファイルパスに設定することで検索パスを指定できます。OpenSSL バイナリの互換性がない可能性があるため、バンドルされている共有ライブラリは OpenSSL にリンクされていないため、直接インストールすることをお勧めします。
共有ライブラリのロードは JANA によって処理されます。ライブラリ検索パス順序のロードルールについては、Nativeライブラリクラスのドキュメント を参照してください。
状況によっては
InsertOneResult.getInsertedId()メソッドとInsertManyResult.getInsertedIds()メソッドが誤ったドキュメント ID を返す問題を修正します。 この変更は、 Kotlin Sync ドライバー v 5.1.4と v 4.11.4にバックポートされます。シャーディングされたクラスター操作が成功しない場合、ドライバーは他の
mongosサーバーが使用可能な場合、操作の再試行に同じmongosサーバーを選択しないようにします。アプリケーションがGraalVM Native イメージを使用するときに必要なアクセス可能性メタデータを追加します。このメタデータは、ドライバー ライブラリを使用するときに到達可能性メタデータを収集する必要があることを置き換えます。詳細については、 GraalVM ドキュメントのアクセス可能性メタデータを参照してください。
この変更では、
libjnidispatchとlibmongocryptのリソースエントリは追加されません。サポートされているすべてのプラットフォーム(ターゲット)のエントリを追加すると、 GraalVM ネイティブ イメージを使用してビルドされたネイティブ実行可能ファイルのサイズに大きく影響するためです。このサンプルresource-config.jsonファイルをドライバーGithubリポジトリで表示して、アプリケーションがorg.mongodb:mongodb-cryptライブラリに依存している場合にこれらのエントリを明示的に指定する方法を確認します。VectorSearchOptionsAPI を拡張して次の特定のオプション サブタイプを導入することで、正確なベクトル検索を有効にします。ExactVectorSearchOptions: このオプション タイプを使用して完全一致を有効にし、結果が特定のクエリ ベクトルに最も近いベクトルになるようにします。ApproximateVectorSearchOptions: このオプション タイプを使用すると、正確な最も近いベクトルが返されない可能性がある検索を有効にできます。 このタイプをインスタンス化するときにnumCandidatesパラメータを渡して、考慮する最近傍の数を指定できます。
MongoDB ベクトル検索機能の使用の詳細については、 「 MongoDB ベクトル検索クイック スタート 」を参照してください。
Kotlin の日付と時刻型を string ではなく、期待される型として BSON にマッピングできる
kotlinx-datetimeライブラリのシリアライザーのサポートを追加します。 詳細については、 Kotlin 直列化 ガイドの「日付と時刻を直列化する 」セクションを参照してください。JsonElement 値の直列化をサポートします。
JsonElementタイプを扱うには、アプリケーションにkotlinx-serialization-jsonライブラリを依存関係として追加する必要があります。
5.1.3の新機能
5.1.3 ドライバー パッチ リリースには次の変更が含まれています。
Cursor型の使用時にアサーション エラーが発生する可能性がある問題を修正しました。
5.1.2の新機能
5.1.2 ドライバー パッチ リリースには次の変更が含まれています。
null 可能なジェネリック パラメータ型で Kotlin データ クラスをエンコードするためのサポート。 たとえば、次のコードで
Containerクラスをエンコードできます。data class Box<T>( val boxed: T ) data class Container( val box: Box<String?> )
5.1.1の新機能
5.1.1 ドライバー パッチ リリースには次の変更が含まれています。
MONGODB-OIDC認証メカニズムを使用する場合、authMechanismProperties接続文字列値にカンマ文字を含めることはできません。 この動作の詳細については、MONGODB-OIDCガイドを参照してください。
5.1 の新機能
警告
このリリースの廃止
ドライバーの将来のメジャー リリースで重大な変更を避けるため、非推奨のプログラム要素に依存するアプリケーション コードをすべて置き換えます。
このセクションには、次の情報が含まれています。
5.1での非推奨
- MongoDB Server v 3.6のサポートは非推奨であり、次のドライバー バージョンのリリースで削除される予定です。 MongoDB Server 配置をアップグレードする方法については、MongoDB Server マニュアルのリリースノートを参照してください。
5.1での改善
GraalVM ネイティブ イメージ テクノロジーの内部テスト。 これらのテストには、 GraalVM ネイティブ イメージ ツールを使用してネイティブ アプリケーションをビルドすることが含まれます。
MONGODB-OIDC認証メカニズムのサポートを強化します。OIDC の詳細については、MONGODB-OIDCガイド を参照してください。多形の
MongoCollectionインスタンスの使用時に操作で誤ったコーデックが使用される問題を修正しました。 これにより、bson-kotlinxを使用するときに弁別子情報が失われることがなくなります。多形の
MongoCollectionインスタンスを使用する際に、クラス弁別子がデコード中の最初のフィールドであり、フィールド型エラーが発生する問題を修正します。
5.1の新機能
多態的な 直列化 のサポート。 詳細については、 Kotlin 直列化 ガイドの「多形直列化」セクションを参照してください。
serverMonitoringMode接続 URI オプションを導入します。 詳細については、「接続オプションの指定 」ガイドを参照してください。
5.0 の新機能
5.0 ドライバー リリースの新機能は次のとおりです。
KotlinSerializerCodecProviderコンストラクターがserializersModulebsonConfigurationオブジェクトと オブジェクトを受け入れるようになりました。KotlinSerializerCodec.create(clazz.kotlin, serializersModule=serializersModule, bsonConfiguration=bsonConfiguration) これにより、構成をカスタマイズしやすくなります。
コンテナ タイプの消去につながる Kotlin 反映バグを修正します。