新機能
次の新機能をご覧ください。
5.4 の新機能
5.4 ドライバー リリースには、次の変更、修正、機能が含まれています。
CSFLE と QE の
$lookup
操作をサポートします。詳細については、サーバー マニュアルの次の参照を参照してください。MONGODB-AWS
認証メカニズムをテストするために、 AWS SDK の依存関係を 2.30.31 と 1.12.782 に更新します。Adds a sort option to the
ClientUpdateOneOptions
andClientReplaceOneOptions
classes. This change allows you to set a sort order for update and replace operations in client bulk writes. To learn more, see the アップデート操作 and 置換操作 sections of the Bulk Operations guide.Adds Kubernetes support for OIDC authentication. To learn more, see the MONGODB-OIDC: Kubernetes section of the Enterprise Authentication Mechanisms guide.
次の Atlas Search クエリ演算子のファーストクラスのサポートを追加します。
phrase
regex
queryString
equals
moreLikeThis
in
wildcard
To learn more, see the SearchOperator interface API documentation.
close()
を呼び出すと、操作タイムアウトに影響せずにtimeoutMS
設定を更新するようにカーソルを更新します。hint
オプションを指定して、distinct()
メソッドを呼び出すときにインデックスを使用できるようにします。
このリリースの変更の完全なリストを表示するには GitHub の v5.4 リリースノート を参照してください。
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
インスタンスの作成時にオプションとして並べ替えを設定することもできます。 詳しくは、「 ドキュメントの修正と一括操作 」のガイドを参照してください。
ビルダクラスメソッドをデータクラスプロパティで直接使用するためのサポート。 詳しくは、「 データ クラスでビルダを使用する 」ガイドを参照してください。この機能は、このリリースで公開されたKotlinドライバー拡張機能パッケージによってサポートされています。
クライアント一括書き込みAPI を実装し、同じ呼び出しで複数のデータベースとコレクションに対して書き込み操作を実行できます。この機能の詳細については、 一括操作ガイドの「 クライアント一括書込み 」セクションを参照してください。
5.2 の新機能
重要
MongoDBサーバー3.6 のサポートの削除
Kotlinドライバー v5.2 はMongoDBサーバー3.6 のサポートを廃止します。 サーバーの互換性のあるバージョンの詳細については、「 互換性 」を参照してください。
5.2ドライバー リリースには、次の新機能、改善点、修正が含まれています。
クライアント側操作タイムアウト(COT)の設定を有効にします。この機能を使用すると、
MongoClient
インスタンスに単一のタイムアウトを設定して、そのクライアントで実行されるすべての操作に適用できます。詳しくは、「 MongoClientSettings.Builder.timeout() APIドキュメント 」を参照してください。重要
非推奨のタイムアウト オプション
次のタイムアウト オプションは非推奨です。
waitQueueTimeoutMS
socketTimeoutMS
wTimeoutMS
maxTimeMS
maxCommitTimeMS
これらのオプションの機能を置き換えるには、CSO 機能を使用します。
SearchIndexModel
インスタンスの構築時に渡すことができるSearchIndexType
クラスを追加します。 この変更により、Atlas Search または Vector Search インデックスの作成時に インデックス タイプを指定できるようになります。 詳細については、「 インデックス ガイド 」の「 Atlas Search および Vector Search インデックス 」を参照してください。SCRAM-SHA-1
とSCRAM-SHA-256
認証メカニズムを実装するアルゴリズムの実装を、構成された JCA プロバイダーに委任します。 この変更により、アプリケーションは構成された FIPS 準拠の JCA プロバイダーを使用して、より高いレベルのセキュリティを提供できるようになります。mongodb -crypt を改訂します 依存関係のバージョン管理: JVMドライバーのバージョン管理と一致します。
mongodb-crypt
の将来のバージョンはドライバーと一緒にリリースされ、同じバージョン番号を共有します。mongodb-crypt
の依存関係を v 5にアップグレードする必要があります。 2 。 0 このリリースのドライバーをアップグレードする際。 詳細については、 「使用中の暗号化」ガイドを 参照してください。サポートされているすべてのプラットフォームにネイティブ暗号化を実装ことにより、パフォーマンスが向上しました。 次のリストでは、オペレーティング システムに応じて、この改善を実装するために必要なアクションについて説明します。
Windows :
mongodb-crypt
のバージョンを v 5.2.0にアップグレードします。Mac :
mongodb-crypt
のバージョンを v 5.2.0にアップグレードします。Linux :
mongodb-crypt
JARファイルにバンドルされているファイルを使用する代わりに、ファイルシステムにlibmongocrypt.so
を直接インストールします。libmongocrypt
をインストールするためのLinux手順については、サーバー マニュアルを参照してください。 パッケージマネージャーを使用してlibmongocrypt
をインストールすると、 Java Native Access(JLA)は、追加の構成なしでそれを見つけます。 あるいは、LD_LIBRARY_PATH
環境変数をlibmongocrypt
パッケージのファイルパスに設定することで検索パスを指定できます。OpenSSL バイナリの互換性がない可能性があるため、バンドルされている共有ライブラリは OpenSSL にリンクされていないため、直接インストールすることをお勧めします。
共有ライブラリのロードは JANA によって処理されます。 ライブラリ検索パス順序のロードルールについては、 Nativeライブラリクラスのドキュメント を参照してください。
状況によっては
InsertOneResult.getInsertedId()
メソッドとInsertManyResult.getInsertedIds()
メソッドが誤ったドキュメント ID を返す問題を修正します。 この変更は、 Kotlin ドライバー v 5.1.4および v 4.11.4にバックポートされます。シャーディングされたクラスター操作が成功しない場合、ドライバーは他の
mongos
サーバーが使用可能な場合、操作の再試行に同じmongos
サーバーを選択しないようにします。アプリケーションが GraalVM Native イメージを使用するときに必要なアクセス可能性メタデータを追加します。 このメタデータは、ドライバー ライブラリを使用するときに到達可能性メタデータを収集する必要があることを置き換えます。 詳細については、「 リージョン メタデータ 」を参照してください GraalVM ドキュメントを参照してください。
この変更では、
libjnidispatch
とlibmongocrypt
のリソース エントリは追加されません。サポートされているすべてのプラットフォーム(ターゲット)のエントリを追加すると、 GraalVM ネイティブ イメージを使用してビルドされたネイティブ実行可能ファイルのサイズに大きく影響するためです。 このサンプル リソース-config.json を 表示Github アプリケーションが ライブラリに依存している場合に、これらのエントリを明示的に指定する方法を確認するには、ドライバー リポジトリのorg.mongodb:mongodb-crypt
ファイルを参照してください。VectorSearchOptions
API を拡張して次の特定のオプション サブタイプを導入することで、正確なベクトル検索を有効にします。ExactVectorSearchOptions
: このオプション タイプを使用して完全一致を有効にし、結果が特定のクエリ ベクトルに最も近いベクトルになるようにします。ApproximateVectorSearchOptions
: このオプション タイプを使用すると、正確なベクトルが返されない可能性がある検索を有効にできます。 このタイプをインスタンス化するときにnumCandidates
パラメータを渡して、考慮する最近傍の数を指定できます。
Atlas Vector Search 機能の使用の詳細については、「 集計ビルダ 」ガイドの「 Atlas Vector Search 」を参照してください。
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
接続string値にカンマ文字を含めることはできません。 この動作の詳細については、エンタープライズ認証ガイドのMONGODB-OIDCセクションを参照してください。
5.1 の新機能
警告
このリリースの廃止
ドライバーの将来のメジャー リリースで重大な変更を避けるため、非推奨のプログラム要素に依存するアプリケーション コードをすべて置き換えます。
このセクションには、次の情報が含まれています。
5.1での非推奨
MongoDB サーバー v 3.6のサポートは非推奨であり、次のドライバー バージョンのリリースで削除される予定です。 MongoDB サーバー配置をアップグレードする方法については、MongoDB サーバー マニュアルの「リリースノート 」を参照してください。
5.1での改善
GraalVM ネイティブ イメージ テクノロジーの内部テスト。 これらのテストには、 GraalVM ネイティブ イメージ ツールを使用してネイティブ アプリケーションをビルドすることが含まれます。
MONGODB-OIDC
認証メカニズムのサポートが強化されました。 OIDC の詳細については、エンタープライズ認証メカニズムのガイドの「 MONGODB-OIDC 」セクションを参照してください。多形の
MongoCollection
インスタンスの使用時に操作で誤ったコーデックが使用される問題を修正しました。 これにより、bson-kotlinx
を使用するときに弁別子情報が失われることがなくなります。多形の
MongoCollection
インスタンスを使用する際に、クラス弁別子がデコード中の最初のフィールドであり、フィールド型エラーが発生する問題を修正します。
5.1の新機能
5.0 の新機能
5.0 ドライバー リリースの新機能は次のとおりです。
KotlinSerializerCodecProvider
コンストラクターがserializersModule
bsonConfiguration
オブジェクトと オブジェクトを受け入れるようになりました。KotlinSerializerCodec.create(clazz.kotlin, serializersModule=serializersModule, bsonConfiguration=bsonConfiguration) これにより、構成をカスタマイズしやすくなります。
コンテナ タイプの消去につながる Kotlin 反映バグを修正します。
4.11 の新機能
このセクションには、次の情報が含まれています。
4.11 での非推奨
警告
このリリースの廃止
ドライバーの将来のメジャー リリースで重大な変更を避けるため、非推奨のメソッドとタイプに依存するすべてのアプリケーション コードを置き換えます。
4.11 ドライバー リリースでは、次の項目が非推奨になります。
次のネットワーク アドレス関連のメソッドは非推奨であり、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 への接続のサポート。
16 MB を超える 変更ストリーム イベントのフラグメントを識別するために、
ChangeStreamDocument
クラスにgetSplitEvent()
メソッドを追加しました。 16 MB を超えるイベントを処理するには、変更ストリームの集計ステージ$changeStreamSplitLargeEvent
を使用する必要があります。$vectorSearch
の集計ステージ ビルダを追加しました。Atlas Search インデックス マネジメント ヘルパーを追加しました。
Snappyおよびzstd圧縮ライブラリの依存関係バージョンを更新しました。 現在の依存関係バージョンの詳細については、「ネットワーク圧縮 」を参照してください。
接続プール イベントの期間をモニタリングするために、次のクラスに
getElapsedTime()
メソッドを追加しました。Java 21 仮想スレッドと構造化同時実行性のサポート。 仮想スレッドの不要な固定を回避し、スレッドの中断された状態を保持するようにドライバー内部がアップデートされました。後者はキャンセルに使用される構造化同時実行性において重要であるためです。
仮想スレッドの詳細については、「 仮想 スレッド 」を参照してください。 JDK 拡張の提案。構造化同時実行の詳細については、「 構造化同時 実行 」を参照してください。 JDK 拡張の提案。
次のタイプの API ドキュメントを更新しました。
4.10 の新機能
重要
Kotlin ドライバーのバージョン 4.10.1 以降で、 kotlinx-serialization
ライブラリを使用するには、 bson-kotlinx
ライブラリを明示的な依存関係として追加する必要があります。
コルーチンと同期アプリケーションの両方で、 Kotlin サーバーサイドでの使用をサポートします。
Kotlin データ クラスのコーデック サポート。
kotlinx.serialization
ライブラリのサポート