Docs Menu
Docs Home
/ / /
Kotlin コルーチン

新機能

項目一覧

  • 5.2 の新機能
  • 5.1.3の新機能
  • 5.1.2の新機能
  • 5.1.1の新機能
  • 5.1 の新機能
  • 5.0 の新機能
  • 4.11 の新機能
  • 4.10 の新機能

次の新機能をご覧ください。

  • バージョン 5.2

  • バージョン5.1.3

  • バージョン5.1.2

  • バージョン5.1.1

  • バージョン 5.1

  • バージョン 5.0

  • バージョン 4.11

  • バージョン 4.10

5.2ドライバー リリースには、次の新機能、改善点、修正が含まれています。

  • SearchIndexModelインスタンスの構築時に渡すことができる SearchIndexTypeクラスを追加します。 この変更により、Atlas Search または Vector Search インデックスの作成時に インデックス タイプを指定できるようになります。 詳細については、「 インデックス ガイド」の Atlas Search および Vector Search インデックスを参照してください。

  • SCRAM-SHA-1SCRAM-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 ドキュメントを参照してください。

    この変更では、 libjnidispatchlibmongocryptのリソース エントリは追加されません。サポートされているすべてのプラットフォーム(ターゲット)のエントリを追加すると、 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 ドライバー パッチ リリースには次の変更が含まれています。

  • Cursor型の使用時にアサーション エラーが発生する可能性がある問題を修正しました。

5.1.2 ドライバー パッチ リリースには次の変更が含まれています。

  • null 可能なジェネリック パラメータ型で Kotlin データ クラスをエンコードするためのサポート。 たとえば、次のコードでContainerクラスをエンコードできます。

    @Serializable
    data class Box<T>(
    val boxed: T
    )
    @Serializable
    data class Container(
    val box: Box<String?>
    )

5.1.1 ドライバー パッチ リリースには次の変更が含まれています。

  • MONGODB-OIDC 認証メカニズムを使用する場合、authMechanismProperties 接続string値にカンマ文字を含めることはできません。 この動作の詳細については、エンタープライズ認証ガイドのMONGODB-OIDCセクションを参照してください。

警告

このリリースの廃止

ドライバーの将来のメジャー リリースで重大な変更を避けるため、非推奨のプログラム要素に依存するアプリケーション コードをすべて置き換えます。

このセクションには、次の情報が含まれています。

  • MongoDB サーバー v 3.6のサポートは非推奨であり、次のドライバー バージョンのリリースで削除される予定です。 MongoDB サーバー配置をアップグレードする方法については、MongoDB サーバー マニュアルの「リリースノート 」を参照してください。

  • GraalVM ネイティブ イメージ テクノロジーの内部テスト。 これらのテストには、 GraalVM ネイティブ イメージ ツールを使用してネイティブ アプリケーションをビルドすることが含まれます。

  • MONGODB-OIDC認証メカニズムのサポートが強化されました。 OIDC の詳細については、エンタープライズ認証メカニズムのガイドの「 MONGODB-OIDC 」セクションを参照してください。

  • 多形のMongoCollectionインスタンスの使用時に操作で誤ったコーデックが使用される問題を修正しました。 これにより、 bson-kotlinxを使用するときに弁別子情報が失われることがなくなります。

  • 多形のMongoCollectionインスタンスを使用する際に、クラス弁別子がデコード中の最初のフィールドであり、フィールド型エラーが発生する問題を修正します。

  • 多態的な 直列化 のサポート。 詳細については、 Kotlin 直列化 ガイドの「多形直列化」セクションを参照してください。

  • serverMonitoringMode接続 URI オプションを導入します。 詳細については、「接続オプション 」ガイドを参照してください。

5.0 ドライバー リリースの新機能は次のとおりです。

  • KotlinSerializerCodecProviderコンストラクターがserializersModule bsonConfigurationオブジェクトと オブジェクトを受け入れるようになりました。

    KotlinSerializerCodec.create(clazz.kotlin, serializersModule=serializersModule, bsonConfiguration=bsonConfiguration)

    これにより、構成をカスタマイズしやすくなります。

  • コンテナ タイプの消去につながる Kotlin 反映バグを修正します。

このセクションには、次の情報が含まれています。

警告

このリリースの廃止

ドライバーの将来のメジャー リリースで重大な変更を避けるため、非推奨のメソッドとタイプに依存するすべてのアプリケーション コードを置き換えます。

4.11 ドライバー リリースでは、次の項目が非推奨になります。

  • 次のネットワーク アドレス関連のメソッドは非推奨であり、v5.0 で削除されます。

    • ServerAddress メソッドgetSocketAddress()getSocketAddresses() メソッド。

      getSocketAddress()の代わりに、 java.net.InetAddressgetByName()インスタンス メソッドを使用します。

      getSocketAddresses()の代わりに、 java.net.InetAddressgetAllByName()インスタンス メソッドを使用します。

    • 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 ドライバー リリースの新機能には、次のものが含まれます。

  • SOCKS5 プロキシを使用した MongoDB への接続のサポート。

  • 16 MB を超える 変更ストリーム イベントのフラグメントを識別するために、 ChangeStreamDocumentクラスにgetSplitEvent()メソッドを追加しました。 16 MB を超えるイベントを処理するには、変更ストリームの集計ステージ$changeStreamSplitLargeEventを使用する必要があります。

  • $vectorSearchの集計ステージ ビルダを追加しました。

  • Atlas Search インデックス マネジメント ヘルパーを追加しました。

  • Snappyおよびzstd圧縮ライブラリの依存関係バージョンを更新しました。 現在の依存関係バージョンの詳細については、「ネットワーク圧縮 」を参照してください。

  • 接続プール イベントの期間をモニタリングするために、次のクラスにgetElapsedTime()メソッドを追加しました。

  • Java 21 仮想スレッドと構造化同時実行性のサポート。 仮想スレッドの不要な固定を回避し、スレッドの中断された状態を保持するようにドライバー内部がアップデートされました。後者はキャンセルに使用される構造化同時実行性において重要であるためです。

    仮想スレッドの詳細については、「 仮想 スレッド 」を参照してください。 JDK 拡張の提案。構造化同時実行の詳細については、「 構造化同時 実行 」を参照してください。 JDK 拡張の提案。

  • 次のタイプの API ドキュメントを更新しました。

重要

Kotlin ドライバーのバージョン 4.10.1 以降で、 kotlinx-serializationライブラリを使用するには、 bson-kotlinxライブラリを明示的な依存関係として追加する必要があります。

  • コルーチンと同期アプリケーションの両方で、 Kotlin サーバーサイドでの使用をサポートします。

  • Kotlin データ クラスのコーデック サポート。

  • kotlinx.serializationライブラリのサポート

戻る

クイック リファレンス