Docs Menu
Docs Home
/ / /
Java Sync Driver

新機能

項目一覧

  • 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

重要

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

  • SCRAM-SHA-1SCRAM-SHA-256認証メカニズムを実装するアルゴリズムの実装を、構成された JCA プロバイダーに委任します。 この変更により、アプリケーションは構成された FIPS 準拠の JCA プロバイダーを使用して、より高いレベルのセキュリティを提供できるようになります。

  • JVMドライバーのバージョン管理と一致するように mongodb-crypt 依存関係のバージョン管理を改訂します。mongodb-crypt の将来のバージョンはドライバーと一緒にリリースされ、同じバージョン番号を共有します。mongodb-crypt の依存関係を v にアップグレードする必要があります。 。このリリースのドライバーをアップグレードする際の 。詳細については、5 20「使用中の暗号化」ガイドを 参照してください。

  • サポートされているすべてのプラットフォームにネイティブ暗号化を実装ことにより、パフォーマンスが向上しました。 次のリストでは、オペレーティング システムに応じて、この改善を実装するために必要なアクションについて説明します。

    • 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 を返す問題を修正します。 この変更は、Java ドライバー 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 」を参照してください。

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

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

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

  • MongoCollectionインスタンスのジェネリック型として基本クラスを指定している場合に、ジェネリック基本クラスを拡張する具象クラスをドライバーでエンコードおよびデコードできない問題を修正します。

  • SOCKS 5プロキシ機能を使用するときにドメイン名を検証する方法に関連する問題を修正し、最上位ドメインが 6 文字を超えるドメイン名を使用できるようにします。

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

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

  • 冗長なバイト配列クローンを排除し、GridFS スループットを最適化します。 GridFSDownloadStream型とGridFSUploadStream型では、 DocumentではなくBsonDocument型が使用されます。

警告

このリリースの廃止

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

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

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

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

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

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

警告

このリリースにおける重大な変更

このドライバー バージョンでは、重大な変更が導入されています。 これらの変更のリストについては、アップグレード ガイドの「バージョン 5.0 の重大な変更 」セクションを参照してください。

警告

このリリースの廃止

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

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

  • getElapsedTime()com.mongodb.event.ConnectionReadyEventConnectionCreatedEvent メソッドには、 の配信にかかる時間が含まれます。つまり、返される時間にはcom.mongodb.event.ConnectionPoolListener.connectionCreated()メソッドの期間が含まれます。

    com.mongodb.event.ConnectionCheckedOutFailedEventcom.mongodb.event.ConnectionCheckedOutEventgetElapsedTime()メソッドには、 com.mongodb.event.ConnectionCheckOutStartedEventの配信にかかる時間が含まれます。 つまり、返される時間にはcom.mongodb.eventConnectionPoolListener.connectionCheckOutStarted()メソッドの期間が含まれます。

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 ドライバー リリースでは、次の項目が非推奨になります。

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

注意

The v 4.11.3 パッチ リリースは、SOCKS 5プロキシ機能を使用するときにドメイン名を検証する方法に関連する問題を修正し、最上位ドメインが 6 文字を超えるドメイン名を使用できるようにします。

4.10 ドライバー リリースの新機能には、次のものが含まれます。

  • Accumulators.percentile()Accumulators.median()統計集計用の メソッドと メソッドの実装。

  • com.mongodb.client.model.searchパッケージ内のインターフェースが@Evolvingではなく@Sealedとしてマークされるようになりました。 リンクされたインターフェースは、ライブラリの利用者によって拡張または実装されてはなりません。

  • ドライバーが再試行操作のために重複したログ メッセージを出力する問題を解決しました。 ドライバーは再試行操作ごとに 1 つのログ メッセージを正しく出力するようになりました。

  • org.bson.codecs.Parameterizableインターフェースは非推奨です。 コーデックが パラメーター化された型を対象としている場合は、このインターフェースをカスタムCodec型に実装する代わりに、コーデックのCodecProviderCodecProvider.get()メソッドをオーバーライドします。

  • カスタム DNS リゾルバのサポート。

  • Queryable Encryption (QE)のサポート QE 機能を使用するための要件の詳細については、「 Queryable Encryption ドライバーの互換性テーブル 」を参照してください。

戻る

クイック リファレンス