Docs Menu
Docs Home
/ /

ドライバーのバージョンをアップグレードする

このページでは、ドライバーを新しいバージョンにアップグレードする方法を説明します。 このページには、該当する場合、機能を失うことなくドライバーをアップグレードするためにアプリケーションに加える必要がある変更も含まれます。

アップグレードする前に、次のアクションを実行してください。

  • 新しいドライバー バージョンが、アプリケーションが接続するMongoDB Server のバージョン、およびアプリケーションを実行するNode.jsのバージョンと互換性があることを確認します。この情報については、 ドライバーの互換性テーブル ページを参照してください。

  • このガイドの「重大な変更 」セクションで、アプリケーションが現在使用しているドライバーのバージョンとアップグレードが予定されているバージョンとの間の重大な変更に対処します。 MongoDB Server リリースの互換性の変更の詳細については、「サーバー リリースの互換性の変更 」セクションを参照してください。

Tip

ドライバー バージョンをアップグレードするときに、アプリケーションに加える必要がある変更の量を最小限に抑えるには、 Stable APIを使用します。

ドライバーのバージョンをアップグレードするには、アプリケーションの ディレクトリで次のコマンドを実行します。

npm install mongodb@7.0

ドライバーの別のバージョンにアップグレードするには、@ 記号の後の情報をご希望のバージョン番号に置き換えます。 npm install コマンドの詳細については、npm-インストール npmドキュメント」を参照してください。

重大な変更とは、アプリケーションが期待どおりに動作するのを妨げる可能性のあるドライバーの特定のバージョンの規則または動作の変更です。

このセクションの重大な変更は、それを導入したメジャー バージョン リリースによって分類されます。 ドライバーのバージョンをアップグレードするときは、現在のバージョンと計画されているアップグレード バージョン間のすべての重大な変更に対処してください。 たとえば、ドライバーを v 3 .x から v 5 .x にアップグレードする場合は、v 4.0にリストされているすべての重大な変更に対処します。 および v 5.0 。

  • 次のドライバー依存関係とピア依存関係を v7.0.0 に更新します。

    • bson@7.0.0

    • mongodb-connection-string-url@7.0.0

    • mongodb-client-encryption@7.0.0

    • @mongodb-js/kerberos@7.0.0

    • @mongodb-js/zstd@7.0.0

  • AWS認証に次の重大な変更を追加します。

    • MONGODB-AWS認証には @aws-sdk/credential-providersパッケージが必要です。

    • カスタムAWS認証プロバイダを AWS_CREDENTIAL_PROVIDER認証プロパティに提供すると、他のAWS認証方法よりも優先されます。

    • 認証情報の取得は、 AWS SDK によって完全に処理されます。 AWS認証のすべてのクライアントURI は、次の形式で指定する必要があります。

      import { MongoClient } from 'mongodb';
      const client = new MongoClient('mongodb<+srv>://<host>:<port>/?authMechanism=MONGODB-AWS');

      AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY プロパティに基づいて、URI でエンコードされた認証情報を接続文字列に直接提供する以前の方法は使用できなくなっています。

    MONGODB-AWS認証 の詳細については、 AWS IAM 認証メカニズムのガイドを参照してください。

  • 任意の $changeStream ステージ オプションを collection.watch() に渡すことができます。パイプラインの $changeStream ステージでオプションが無効な場合、サーバーはエラーを返します。

  • 1000 のカーソルのデフォルトbatchSize を削除します。カーソルで明示的に batchSize を有効にする必要があります。

  • 次のパッケージのピア依存関係マトリックスを次の許可された範囲に更新します。

    • @aws-sdk/credential-providers: ^3.806.0

    • @mongodb-js/zstd: ^2.0.0

    • gcp-metadata: ^7.0.1

    • socks: ^2.8.6

    完全な依存関係互換性テーブルについては、 [ ドライバーの互換性テーブル ] ページの[ Node.jsコンポーネントの互換性 ] テーブルを参照してください。

  • カーソルと変更ストリーム上の transform 関数のサポートを廃止します。代わりに、ReadableStream.map() を使用できます。

    // before
    const stream = cursor.stream({ transform: JSON.stringify });
    // after
    const stream = cursor.stream().map(JSON.stringify);
  • MongoClient.close() の実行中に endSessions が使用する noResponse オプションのサポートを廃止します。サーバーの応答を待たないように、代わりに未確認の書き込みを使用します。

  • サポートされていない MONGODB-CR認証メカニズムを削除します。

  • 次の内部 ClientMetadata プロパティをパブリックAPIから削除します。

    MongoClient.options.additionalDriverInfo;
    MongoClient.options.metadata;
    MongoClient.options.extendedMetadata;
    MongoOptions.additionalDriverInfo;
    MongoOptions.metadata;
    MongoOptions.extendedMetadata;
    ConnectionOptions.metadata;
    ConnectionOptions.extendedMetadata;
  • beta名前空間を削除し、すべての明示的なリソース管理構成をそれぞれの 無効化可能なリソースに移動します(MongoClientClientSession など)。

  • writeConcernexplain オプションが設定されている集計に対して、ドライバーではなくサーバーがエラーをスローします。

  • 暗号化中にスローされたすべてのエラーが、新しい mongodb-client-encryption v7 アップデートの一部として MongoError のサブクラスであることを確認します。

  • 暗号化接続エラーの場合、 は MissingDependencyError ではなく MongoRuntimeError をスローします。

  • TypeScript では、指定されたファイル名がファイルのデフォルト名と一致しない場合にエラーをスローすることで、AutoEncryptionOptions のファイルパスの入力が改善されます。

  • 誤字を修正するために、PoolRequstedRetryエラーラベルの名前を PoolRequestedRetry に変更します。

  • Node16 および Node18 のサポートを削除します。

  • 次の非推奨の型、クラス、オプションを削除します。

    GridFSFile.contentType;
    GridFSFile.aliases;
    GridFSBucketWriteStreamOptions.contentType;
    GridFSBucketWriteStreamOptions.aliases;
    CloseOptions;
    ResumeOptions;
    MongoClientOptions.useNewUrlParser;
    MongoClientOptions.useUnifiedTopology;
    CreateCollectionOptions.autoIndexId;
    FindOptions<TSchema>; // now no generic type
    ClientMetadataOptions;
    FindOneOptions.batchSize;
    FindOneOptions.limit;
    FindOneOptions.noCursorTimeout;
    ReadPreference.minWireVersion;
    ServerCapabilities;
    CommandOperationOptions.retryWrites; // is a global option on the MongoClient
    ClientSession.transaction;
    Transaction;
    CancellationToken;
  • Node.js ドライバーのバージョン 6.0 には、Node.js v16.20.1 以降が必要です。

  • ドライバーはaddUser()ヘルパー コマンドのサポートを削除します。 代わりにcreateUser MongoDB Shell コマンドを使用してください。

  • ドライバーはcollStats操作のサポートを削除します。 代わりに、 $collStats集計演算子を使用してください。

  • このドライバーにより、非推奨のすべてのsslプレフィックスがついたオプションとMongoClientOptions型のtlsCertificateFileオプションが削除されます。 代わりに、 SecureContextオブジェクトを作成するか、 MongoClientOptionsインスタンスでtlsプレフィックス付きオプションを設定します。

  • ドライバーは、 MongoClientインスタンスを作成したときではなく、 MongoClient.connect()メソッドを呼び出すと、 tlsCAFiletlsCertificateKeyFileの接続オプションで設定されたファイルを読み取ります。

  • ドライバーにより、 keepAlivekeepAliveInitialDelay接続オプションが削除されます。 keepAliveの値は永続的にtrueに設定され、 keepAliveInitialDelayの値は 300000 ミリ秒(300 秒)に設定されます。

  • Db.command()メソッドは、特定のコマンドに関連性のないオプションのみを受け入れます。 これらのオプションの詳細については、「 コマンドの実行 」ガイドの「コマンド オプション 」セクションを参照してください。

  • mongodb-client-encryptionを依存関係として追加する場合、メジャー バージョン番号は Node.js ドライバーのメジャー バージョン番号と一致する必要があります。 たとえば、Node.js ドライバー v6.x にはmongodb-client-encryption v6.x が必要です。

  • 自動暗号化メソッドが Node.js ドライバーに含まれるようになりました。 You must import these methods from the driver instead of from mongodb-client-encryption.

  • 12 文字の string を受け入れたObjectIdコンストラクタを削除しました。

  • 未加工のコマンド結果ではなく を返すように、 メソッドとabortTransaction() メソッドを変更しました。commitTransaction()null

  • trueまたはfalse以外の値をブール値として受け入れる接続オプション ヘルパーを削除しました。 接続stringまたは MongoClient コンストラクターに true または false のいずれかの値を指定する必要があります。

  • string を受け入れたBinary BSON 型コンストラクタを削除しました。

  • Binary.write()メソッドでは、バイナリ BSON オブジェクトに書き込む string を受け入れなくなりました。

  • ClientEncryption API は、コールバックではなく Promise を返します。

  • SOCKS5 プロキシのサポートを有効にするsocksパッケージは、ピアオプションの依存関係です。 アプリケーションで SOCKS5 を有効にするには、 パッケージをインストールする必要があります。 詳細については、 「 SOCKS5 プロキシ サポートの有効化 」を参照してください。

  • クライアントでセッションを開始し、そのセッションを別のクライアントに渡すと、セッション内で操作を実行するときにドライバーはエラーをスローします。

  • 複合操作メソッドのincludeResultMetadataオプションはデフォルトでfalseです。 詳細については、 複合操作 ガイドの「組み込みメソッド」セクションを参照してください。

  • withSession() メソッドは、指定された関数によって返された値を返します。以前のドライバー バージョンでは、このメソッドは undefined を返します。withTransaction() メソッドは、コールバックで返された値を返します。以前のドライバー バージョンでは、このメソッドはサーバーコマンドの応答を返します。この応答は、ドライバーが接続するMongoDB Server のバージョンやタイプによって異なります。トランザクションの詳細については、Convenient Transaction APICore APIガイド、およびトランザクションガイドを参照してください。

  • オプションのkerberos依存関係の最小バージョンを 2.0.1 に引き上げ、バージョン 1.x のサポートを廃止しました。

  • 任意のzstd依存関係の最小バージョンを 1.1.0 に引き上げました。

  • ドライバーは Node.js v 12またはそれ以前のバージョンと互換性がありません。 このバージョンのドライバーを使用する場合は、Node.js v 14.20.1以降を使用する必要があります。

  • ドライバーは、Promise ベースの API を優先するため、コールバックのサポートを削除します。 次のリストは、コールバック ユーザーがこのバージョンを採用するためのいくつかの戦略を示しています。

    • Promise ベースの API に移行する(推奨)

    • Promise ベースの API と util.callbackify

    • コールバックを引き続き使用するには、 mongodb-legacyを追加します

    これらの戦略の詳細については、v5.0 変更ログ を参照してください。

  • ドライバーはCollection.insert()Collection.update()Collection.remove()ヘルパー メソッドのサポートを削除します。 次のリストでは、削除されたメソッドの機能を置き換える方法を示しています。

    • Collection.insert()からinsertOne()またはinsertMany()に移行します

    • Collection.update()からupdateOne()またはupdateMany()に移行します

    • Collection.remove()からdeleteOne()またはdeleteMany()に移行します

  • ドライバーにはデフォルトでAmazon Web Services SDK モジュールが含まれなくなりました。

  • ドライバーがbson-extパッケージを自動的にインポートしなくなりました。

  • ドライバーにより、カスタムPromiseライブラリのサポートが削除されます。 ドライバーは、 MongoClientpromiseLibraryオプションと、カスタムPromiseライブラリを指定できるPromise.setのエクスポート をサポートしなくなりました。

  • ドライバーはCollection.mapReduce()ヘルパーのサポートを削除します。

  • BulkWriteResult型には、公開で列挙可能なresultプロパティがなくなりました。

  • 次のタイプ、オプション、メソッドが削除されました。

    • BulkResult.lastOp() メソッド

    • opTime のプロパティ BulkResult

    • BulkWriteOptions.keepGoing オプション

    • WriteConcernError.err() メソッド

    • AddUserOptions.digestPassword オプション

    • Kerberos gssapiCanonicalizeHostName option

    • slaveOk オプションとメソッドが削除され、 secondaryOk

    • ObjectID 型が削除されました ObjectId

    • AsyncIterator インターフェースが削除されました AsyncGenerator

  • ドライバーは Node.js v 12.8またはそれ以前のバージョンと互換性がありません。 このバージョンのドライバーを使用する場合は、Node.js v 12.9以降を使用する必要があります。

  • Cursor 型はReadableを直接拡張しなくなりました。

  • ChangeStreamインスタンスをEventEmitterとして使用した後、イテレータとして使用することはできません。 また、 EventEmitterインスタンスをChangeStreamとして使用した後に、それをイテレータとして使用するという逆の操作もできません。

  • 次のメソッドはコールバック パラメーターを受け入れなくなりました。

    • Collection.find()

    • Collection.aggregate()

    • Db.aggregate()

  • maxPoolSize接続オプションのデフォルト値が100になりました。

  • ドライバーはgssapiServiceName Kerberos オプションをサポートしなくなりました。 代わりにauthMechanismProperties.SERVICE_NAMEを使用してください。

  • ドライバーではブール値オプションとして、 01などの非ブール値型は受け入れなくなりました。

  • db.collection型はコールバックを受け入れなくなりました。

  • Db型はEventEmitterではなくなりました。 You can listen to any events directly from the MongoClient instance.

  • ドライバーはCollection.group()ヘルパーのサポートを削除します。

  • ドライバーには非推奨のGridStore API が含まれなくなりました。

これらの変更の詳細については、 v4.0 変更ログ を参照してください。

サーバー リリースの互換性の変更とは、MongoDB Server の一連のバージョンのサポートを廃止するドライバーに対する変更です。

ドライバーは、サポート終了(EOL)に達すると、MongoDB Server バージョンのサポートを終了します。

EOL 製品の MongoDB サポートの詳細については、レガシー サポート ポリシー を参照してください。

  • v 4.2ドライバーは MongoDB Server v 3.4以前のサポートを削除します。 v 4.2を使用するには ドライバーに設定されている場合、MongoDB Server は v 3.6である必要があります。 以降に更新します。 MongoDB Server 配置をアップグレードする方法については、MongoDB Server マニュアルのリリースノートを参照してください。

戻る

リリースノート

項目一覧