次の新機能をご覧ください。
5.3 の新機能
5.3 ドライバー リリースには、次の変更、修正、機能が含まれています。
重要: 次のマイナー リリースでは、 MongoDB Serverバージョン4.0 のサポートが終了し、サポートされる最小バージョンが4.2 に引き上げられます。重大な変更に対応するために、アプリケーションに変更を加えることをお勧めします。 アップグレードの詳細については、サーバー マニュアルの「 リリースノート 」セクションを参照してください。
ベクトルのストレージと検索用のBSONバイナリ サブタイプ 9 を実装するために
BinaryVectorクラスを追加します。 このクラスは、Doubleインスタンスのリストと比較して、値のより効率的なストレージを提供します。 ベクトルに含まれる要素の型に基づいて、次のベクトル型を作成できます。Int8BinaryVector: 8 ビット符号付き整数のベクトルFloat32BinaryVector: 浮動小数点数のベクトルPackedBitBinaryVector: バイナリ量子化ベクトル(ベータで、一般利用可能になるまでに変更される可能性があります)
この機能の詳細については、Atlas ドキュメントの「 ベクトル量化 」を参照してください。Atlas ベクトル検索機能を使用するときにこのタイプを使用する方法の詳細については、「 Atlas ベクトル検索ガイド 」を参照してください。
接続プールの実装から明示的な均等性を削除します。 この変更により、多くのアプリケーションスレッドで
MongoClientインスタンスを使用すると、スループットが向上する可能性があります。 ただし、この変更により 追尾レイテンシが増加する可能性があります。updateOne()メソッドとreplaceOne()メソッドに並べ替えオプションを追加します。 この変更により、ReplaceOneModelインスタンスとUpdateOneModelインスタンスの作成時にオプションとして並べ替えを設定することもできます。 詳しくは、「 ドキュメントの修正と一括操作 」のガイドを参照してください。
複数のデータベースとコレクションに対して書き込み操作を一度に実行できるクライアント一括書き込みAPIを追加します。 この機能の詳細については、 一括操作ガイドの「 クライアント一括書込み 」セクションを参照してください。
5.2.1の新機能
5.2.1 ドライバー パッチ リリースには次の変更が含まれています。
libmongocryptバインディングの初期化時に Graphus で構築されたアプリケーションがjava.lang.UnsatisfiedLinkErrorをスローする問題を修正します。OSG ランタイムへのデプロイ時に
mongodb-driver-coreパッケージでエラーが発生する問題を修正しました。Import-Packageorg.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インスタンスに単一のタイムアウトを設定して、そのクライアントで実行されるすべての操作に適用できます。詳細については、 「サーバー実行時間の制限」 のガイドを参照してください。重要
非推奨のタイムアウト オプション
次のタイムアウト オプションは非推奨です。
waitQueueTimeoutMSsocketTimeoutMSwTimeoutMSmaxTimeMSmaxCommitTimeMS
これらのオプションの機能を置き換えるには、CSO 機能を使用します。
SearchIndexModelインスタンスの構築時に渡すことができるSearchIndexTypeクラスを追加します。 この変更により、Atlas Search または Vector Search インデックスの作成時に インデックス タイプを指定できるようになります。 詳細については、「 インデックス ガイド 」の「 Atlas Search および Vector 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 ベクトル検索機能の使用の詳細については、 集計ビルダガイドの Atlas ベクトル検索 を参照してください。
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.MongoDatabaseorg.mongodb.scala.MongoDatabasecom.mongodb.kotlin.client.MongoDatabasecom.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.BuildergetStreamFactoryFactory()メソッドMongoClientSettingsNettyStreamFactoryFactoryクラス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の集計ステージ ビルダを追加しました。 詳細については、「 Atlas Vector Search 」を参照してください。Atlas Search インデックス マネジメント ヘルパーを追加しました。 詳しくは、「 Atlas 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 ドライバーの互換性テーブル 」を参照してください。