次の新機能をご覧ください。
5.2.1の新機能
5.2.1 ドライバー パッチ リリースには次の変更が含まれています。
- libmongocryptバインディングの初期化時に Graphus で構築されたアプリケーションが- java.lang.UnsatisfiedLinkErrorをスローする問題を修正します。
- OSG ランタイムへのデプロイ時に - mongodb-driver-coreパッケージでエラーが発生する問題を修正しました。- Import-Package- org.mongodb:mongodb-driver-coreマニフェスト属性には- com.oracle.svm.core.annotate.*パッケージが不要になりました。
5.2 の新機能
重要
MongoDB Server 3.6 のサポートの削除
Javaドライバー v5.2 はMongoDB Server3.6 のサポートを削除します。サーバーの互換性のあるバージョンの詳細については、「 互換性 」を参照してください。
5.2 ドライバー リリースには、次の変更、修正、機能が含まれています。
- 接続 URI 内のホスト名とクライアント オプションの間にあるフォワードスラッシュ( - /)の文字は任意です。 ドライバーは、次の接続 URI の例を同じ方法で解析します。- // Connection URI with delimiting forward-slash - String uri = "mongodb://example.com/?w=majority"; - // Connection URI without delimiting forward-slash - String uri = "mongodb://example.com?w=majority"; 
- クライアント側操作タイムアウト(COT)の設定を有効にします。この機能を使用すると、 - MongoClientインスタンスに単一のタイムアウトを設定して、そのクライアントで実行されるすべての操作に適用できます。詳しくは、 「サーバー実行時間の制限」ガイドを参照してください。- 重要- 非推奨のタイムアウト オプション- 次のタイムアウト オプションは非推奨です。 - waitQueueTimeoutMS
- socketTimeoutMS
- wTimeoutMS
- maxTimeMS
- maxCommitTimeMS
 - これらのオプションの機能を置き換えるには、CSO 機能を使用します。 
- SearchIndexTypeインスタンス の構築時に渡すことができる- SearchIndexModelクラスを追加します。この変更により、 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 を返す問題を修正します。 この変更は、Java ドライバー 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 ベクトル検索 を参照してください。 
5.1.3の新機能
5.1.3 ドライバー パッチ リリースには次の変更が含まれています。
- Cursor型の使用時にアサーション エラーが発生する可能性がある問題を修正しました。
5.1.2の新機能
5.1.2 ドライバー パッチ リリースには次の変更が含まれています。
- MongoCollectionインスタンスのジェネリック型として基本クラスを指定している場合に、ジェネリック基本クラスを拡張する具象クラスをドライバーでエンコードおよびデコードできない問題を修正します。
- SOCKS 5プロキシ機能を使用するときにドメイン名を検証する方法に関連する問題を修正し、最上位ドメインが 6 文字を超えるドメイン名を使用できるようにします。 
5.1.1の新機能
5.1.1 ドライバー パッチ リリースには次の変更が含まれています。
- MONGODB-OIDC認証メカニズムを使用する場合、- authMechanismProperties接続string値にカンマ文字を含めることはできません。 この動作の詳細については、エンタープライズ認証ガイドのMONGODB-OIDCセクションを参照してください。
- 冗長なバイト配列クローンを排除し、GridFS スループットを最適化します。 - GridFSDownloadStream型と- GridFSUploadStream型では、- Documentではなく- BsonDocument型が使用されます。
5.1 の新機能
警告
このリリースの廃止
ドライバーの将来のメジャー リリースで重大な変更を避けるため、非推奨のプログラム要素に依存するアプリケーション コードをすべて置き換えます。
このセクションには、次の情報が含まれています。
5.1での非推奨
- MongoDB Server v 3.6のサポートは非推奨であり、次のドライバー バージョンのリリースで削除される予定です。 MongoDB Server 配置をアップグレードする方法については、MongoDB Server マニュアルのリリースノートを参照してください。 
5.1での改善
- GraalVM ネイティブ イメージ テクノロジーの内部テスト。 これらのテストには、 GraalVM ネイティブ イメージ ツールを使用してネイティブ アプリケーションをビルドすることが含まれます。 
- MONGODB-OIDC 認証メカニズムのサポートが強化されました。 OIDC の詳細については、エンタープライズ認証メカニズムのガイドの「 MONGODB-OIDC 」セクションを参照してください。 
5.1の新機能
- serverMonitoringMode接続 URI オプションを導入します。 このオプションの詳細については、接続オプションのガイドを参照してください。
5.0 の新機能
警告
このリリースにおける重大な変更
このドライバー バージョンでは、重大な変更が導入されています。 これらの変更のリストについては、アップグレード ガイドの「バージョン 5.0 の重大な変更 」セクションを参照してください。
警告
このリリースの廃止
ドライバーの将来のメジャー リリースで重大な変更を避けるため、非推奨のプログラム要素に依存するアプリケーション コードをすべて置き換えます。
このセクションには、次の情報が含まれています。
5.0 での廃止
- org.mongodb.scala.Observable.completeWithUnit()メソッドは非推奨です。 ドライバーが公開するのは- org.mongodb.scala.Observable[Unit]ではなく- org.mongodb.scala.Observable[Void]であるため、このメソッドは使用できなくなりました。これは、このリリースの Observables に関する重大な変更に関連します。
5.0 での動作の変更
- getElapsedTime()- com.mongodb.event.ConnectionReadyEventの- ConnectionCreatedEventメソッドには、 の配信にかかる時間が含まれます。つまり、返される時間には- com.mongodb.event.ConnectionPoolListener.connectionCreated()メソッドの期間が含まれます。- com.mongodb.event.ConnectionCheckedOutFailedEventと- com.mongodb.event.ConnectionCheckedOutEventの- getElapsedTime()メソッドには、- com.mongodb.event.ConnectionCheckOutStartedEventの配信にかかる時間が含まれます。 つまり、返される時間には- com.mongodb.eventConnectionPoolListener.connectionCheckOutStarted()メソッドの期間が含まれます。
5.0 の新機能
5.0 ドライバー リリースでは、次の機能が導入されています。
- listCollectionsコマンドの- authorizedCollectionオプションのサポートを追加します。 これは、- com.mongodb.client.MongoDatabase.listCollectionNames()メソッドを変更することで行われていました。 戻り値の型は- com.mongodb.client.ListCollectionNamesIterableになりましたが、以前は- MongoIterable<String>でした。 この変更により、- ListCollectionNamesIterable.authorizedCollections()メソッドを使用して- authorizedCollectionsオプションを指定して戻り値を構成できるようになります。 次のクラスとインターフェースに対して同等の変更が加えられました。- com.mongodb.reactivestreams.client.MongoDatabase
- org.mongodb.scala.MongoDatabase
- com.mongodb.kotlin.client.MongoDatabase
- com.mongodb.kotlin.client.coroutine.MongoDatabase
 - これらの変更により、 listCollectionsNames() メソッド にバイナリを重大する変更が導入されます。 - MongoDatabase.listCollectionNames()メソッドと- authorizedCollectionsオプションの詳細については、 listCollections Server のマニュアル ページ またはコレクションのリストを取得する を参照してください。
注意
The v 5.0.2 パッチ リリースは、SOCKS 5プロキシ機能を使用するときにドメイン名を検証する方法に関連する問題を修正し、最上位ドメインが 6 文字を超えるドメイン名を使用できるようにします。
4.11 の新機能
このセクションには、次の情報が含まれています。
4.11 での非推奨
警告
このリリースの廃止
ドライバーの将来のメジャー リリースで重大な変更を避けるため、非推奨のメソッドとタイプに依存するすべてのアプリケーション コードを置き換えます。
4.11 ドライバー リリースでは、次の項目が非推奨になります。
- DBCollectionクラスの- getStats()インスタンス メソッドと- isCapped()インスタンス メソッドは非推奨です。 対応するサーバーコマンドは、MongoDB v6.2 以降では非推奨です。 これらのメソッドによって提供される情報を取得するには、代わりに- $collStats集計パイプライン ステージを使用します。 次のコード例に示すように、集計を実行できます。- Cursor cursor = collection.aggregate(Arrays.asList( - new BasicDBObject("$collStats", - new BasicDBObject("storageStats", new BasicDBObject()))), - AggregationOptions.builder().build() - ); - コレクションが Capped コレクションであるかどうかを判断するには、前述の例の集計で - Cursorインスタンスによって返された- storageStats.cappedフィールドの値にアクセスします。- $collStats集計演算子の詳細については、 $collStats(集計)サーバーのマニュアル エントリを参照してください。
- 次のネットワーク アドレス関連のメソッドは非推奨であり、v5.0 で削除されます。 - ServerAddress メソッド - getSocketAddress()と- getSocketAddresses()。- getSocketAddress()の代わりに、- java.net.InetAddressの- getByName()インスタンス メソッドを使用します。- getSocketAddresses()の代わりに、- java.net.InetAddressの- getAllByName()インスタンス メソッドを使用します。
- UnixServerAddress メソッド - getUnixSocketAddress()- getUnixSocketAddress()の代わりに- jnr.unixsocket.UnixSocketAddressのインスタンスを構築します。コンストラクターに UNIX ソケットファイルのフル パスを渡します。デフォルトでは 、 MongoDB は- "/tmp/mongodb-27017.sock"に配置された UNIX ソケットファイルを作成します。- UnixSocketAddressの詳細については、UnixSocketAddress APIドキュメントを参照してください。
 
- StreamFactory インターフェースに関連する次のメソッドとタイプは非推奨となり、 v5.0 で削除される予定です。 - streamFactoryFactory()メソッド- MongoClientSettings.Builder
- getStreamFactoryFactory()メソッド- MongoClientSettings
- NettyStreamFactoryFactoryクラス
- NettyStreamFactoryクラス
- AsynchronousSocketChannelStreamFactoryクラス
- AsynchronousSocketChannelStreamFactoryFactoryクラス
- BufferProviderクラス
- SocketStreamFactoryクラス
- Streamクラス
- StreamFactoryクラス
- StreamFactoryFactoryクラス
- TlsChannelStreamFactoryFactoryクラス
 - MongoClientSettings.Builder.streamFactoryFactory()を使用して Netty を構成する場合、コードは次のようになります。- import com.mongodb.connection.netty.NettyStreamFactoryFactory; - // ... - MongoClientSettings settings = MongoClientSettings.builder() - .streamFactoryFactory(NettyStreamFactoryFactory.builder().build()) - .build(); - 次の例に示すように、このコードを TransportSettings.nettyBuilder() に置き換えます。 - import com.mongodb.connection.TransportSettings; - // ... - MongoClientSettings settings = MongoClientSettings.builder() - .transportSettings(TransportSettings.nettyBuilder().build()) - .build(); 
4.11 の新機能
4.11 ドライバー リリースの新機能には、次のものが含まれます。
- SOCKS5 プロキシを使用した MongoDB への接続のサポート。 詳しくは、「 SOCKS5 プロキシを使用して MongoDB に接続する 」を参照してください。 
注意
The v 4.11.3 パッチ リリースは、SOCKS 5プロキシ機能を使用するときにドメイン名を検証する方法に関連する問題を修正し、最上位ドメインが 6 文字を超えるドメイン名を使用できるようにします。
- 16 MB を超える 変更ストリーム イベントのフラグメントを識別するために、 - ChangeStreamDocumentクラスに- getSplitEvent()メソッドを追加しました。 16 MB を超えるイベントを処理するには、変更ストリームの集計ステージ- $changeStreamSplitLargeEventを使用する必要があります。 詳細については、「大規模な変更ストリーム イベントの分割 」を参照してください。
- の集計ステージ - $vectorSearchビルダを追加しました。詳細については、 「 MongoDB ベクトル検索 」を参照してください。
- MongoDB Searchインデックス管理ヘルパーを追加しました。詳しくは、 「 MongoDB Search インデックス 」を参照してください。 
- Snappyおよびzstd圧縮ライブラリの依存関係バージョンを更新しました。 現在の依存関係バージョンの詳細については、「ネットワーク圧縮 」を参照してください。 
- 接続プール イベントの期間をモニタリングするために、次のクラスに - getElapsedTime()メソッドを追加しました。
- Java 21 仮想スレッドと構造化同時実行性のサポート。 仮想スレッドの不要な固定を回避し、スレッドの中断された状態を保持するようにドライバー内部がアップデートされました。後者はキャンセルに使用される構造化同時実行性において重要であるためです。 - 仮想スレッドの詳細については、Virtual Threads JDK の拡張提案」を参照してください。構造化同時実行の詳細については、構造化同時実行 JDK 機能強化の提案 を参照してください。 
- 次のタイプの API ドキュメントを更新しました。 
4.10 の新機能
4.10 ドライバー リリースの新機能には、次のものが含まれます。
- Accumulators.percentile()- Accumulators.median()統計集計用の メソッドと メソッドの実装。
- com.mongodb.client.model.searchパッケージ内のインターフェースが- @Evolvingではなく- @Sealedとしてマークされるようになりました。 リンクされたインターフェースは、ライブラリの利用者によって拡張または実装されてはなりません。
- ドライバーが再試行操作のために重複したログ メッセージを出力する問題を解決しました。 ドライバーは再試行操作ごとに 1 つのログ メッセージを正しく出力するようになりました。 
- org.bson.codecs.Parameterizableインターフェースは非推奨です。 コーデックが パラメーター化された型を対象としている場合は、このインターフェースをカスタム- Codec型に実装する代わりに、コーデックの- CodecProviderの- CodecProvider.get()メソッドをオーバーライドします。
- カスタム DNS リゾルバのサポート。 
- Queryable Encryption (QE)のサポート QE 機能を使用するための要件の詳細については、「 Queryable Encryption ドライバーの互換性テーブル 」を参照してください。