新機能
次の新機能をご覧ください。
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";
5.1.3の新機能
5.1.3 ドライバー パッチ リリースには次の変更が含まれています。
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 に関連する以下のメソッドとタイプ インターフェースは非推奨であり、 v で削除される予定です。5 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
の集計ステージ ビルダを追加しました。 詳細については、「 Atlas Vector Search 」を参照してください。Atlas Search インデックス マネジメント ヘルパーを追加しました。 詳しくは、「 Atlas Search インデックス 」を参照してください。
Snappyおよびzstd圧縮ライブラリの依存関係バージョンを更新しました。 現在の依存関係バージョンの詳細については、「ネットワーク圧縮 」を参照してください。
接続プール イベントの期間をモニタリングするために、次のクラスに
getElapsedTime()
メソッドを追加しました。Java 21 仮想スレッドと構造化同時実行性のサポート。 仮想スレッドの不要な固定を回避し、スレッドの中断された状態を保持するようにドライバー内部がアップデートされました。後者はキャンセルに使用される構造化同時実行性において重要であるためです。
仮想スレッドの詳細については、「 仮想 スレッド 」を参照してください。 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 ドライバーの互換性テーブル 」を参照してください。