Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Node.js ドライバー
/

リリースノート

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

  • バージョン6.9

  • バージョン6.8

  • バージョン6.7

  • バージョン6.6

  • バージョン6.5

  • バージョン6.4

  • バージョン 6.3

  • バージョン 6.2

  • バージョン 6.1

  • バージョン 6.0

  • MongoDB Server 3.6のサポートは非推奨であり、今後のドライバー リリースで削除される予定です。

  • ドライバーは、カーソルと MongoClientClientSession 、およびChangeStreamオブジェクトの明示的なリソース管理をネイティブでサポートしています。 互換性のある Node.js バージョンを使用する場合、 cursor.stream()メソッドとGridFSDownloadStreamクラスを使用して明示的なリソース管理を実装できます。

    明示的なリソース管理を使用する方法については、Github の v6.9.0 リリースノートを参照してください。明示的なリソース管理の詳細については、 GitHub の ECMAScript 明示的なリソース管理の提案 を参照してください。

  • Node.js18.13 autoSelectFamily以降を使用している場合は、autoSelectFamilyTimeout オプションと オプションをMongoClient コンストラクターに渡すことができます。autoSelectFamilyオプションがtrueの場合、ドライバーは IPv 4または IPv 6接続のいずれかを自動的に選択します。 autoSelectFamilyTimeoutオプションは、ドライバーが接続ファミリーを選択するためのタイムアウトをミリ秒単位で指定します。

    次のコード例は、これらのオプションの使用方法を示しています。

    const client = new MongoClient(uri,
    { autoSelectFamily: true, autoSelectFamilyTimeout: 100 });
  • MongoClientコンストラクターはallowPartialTrustChainオプションを受け入れます。 このオプションはX509_V_FLAG_PARTIAL_CHAIN OpenSSL フラグを制御します。

  • ConnectionCheckedOutEventConnectionCheckFailedEventdurationMSプロパティが含まれるようになりました。 このプロパティは、接続チェックアウト操作の開始と終了までの経過時間を示します。

  • Node.js 18以降を使用している場合、ドライバーはcryptoCallbacksオプションを無視し、代わりに C++ で定義されたコールバックを使用するため、暗号化のパフォーマンスが大幅に向上します。 この変更は v 6.1.0で利用可能です。 mongodb-client-encryptionパッケージのバージョン

  • セキュリティを強化するには、 のスピニングmongocryptd パスと引数を指定するオプションは、autoEncryption.extraOptions のプロパティである必要があります。この変更により、これらのオプションに関連するグローバルなプロトタイプ環境のバグを防ぐことができます。独自のプロパティの詳細については、MDN の Object.hasOwn() を参照してください。

  • Queryable Encryption(QE)範囲クエリの公式サポートを追加します。 この機能を使用するには、アプリでmongodb-client-encryption v 6.1.0以降を使用し、MongoDB Server 8.0以降に接続する必要があります。 QEQueryable Encryption 範囲クエリの詳細については、MongoDB Server マニュアルの「 」を参照してください。

  • insertMany()メソッドとbulkWrite()メソッドはReadonlyArray入力を受け入れます。

  • ドライバーは、 error.result.writeConcernError.codeにあるネストされたコードではなく、 error.codeにある最上位コードに基づいて書き込みを再試行します。 これにより、 4.4より前のバージョンの MongoDB Server を実行しているシャーディングされたクラスターの問題が修正されます。

  • LocalKMSProviderConfiguration.keyプロパティは、BSONBinaryAutoEncryptionOptions インスタンスを受け入れます。

  • Typescriptでは、BulkOperationBase クラスが length getter プロパティを報告します。

  • MongoWriteConcernError型はMongoWriteConcernError.codeに元の最上位コードを保持するようになりました。

  • cursor.toArray()メソッドは、非同期イテレータを再度呼び出す前に、現在のドキュメントのバッチを 配列に空にします。 この変更により、 async / awaitの実行に関連する遅延が回避され、パフォーマンスが最大5 % 向上します。 この最適化は、 toArray()メソッドを呼び出す前にcursor.map()メソッドへの変換を指定した場合は適用されません。

  • cursor.next()メソッドとfor await構文の混合使用を修正しました。

  • Node.js ドライバー v 6.8で不注意で削除された BSON の逆直列化時にenableUtf8Validationオプションを追加します。

  • durationMSプロパティをConnectionReadyEventクラスに追加します。 このプロパティは、接続作成イベントからConnectionReadyEventが起動するまでの時間を表します。

このリリースの詳細については GitHub の v6.9.0 リリースノートを参照してください。

Node.js ドライバー v 6.8リリースには、次の機能が含まれています。

  • ローカルKMSプロバイダーは実行時に BSON Binary インスタンスを受け入れましたが、 Typescriptコンパイラーは Bufferstring のタイプの値のみを許可するバグを修正しました。

  • ReadConcernMajorityNotAvailableYetエラーは再試行可能な読み取りエラーになりました。

  • KMS プロバイダーに名前を関連付け、複数のキーを提供できるようになりました。 この機能にはmongodb-client-encryption v 6.0.1以降が必要です。 アプリケーションが KMS プロバイダーの自動更新機能を使用している場合、名前付き KMS プロバイダーは使用できません。

    次のコード例は、複数のAmazon Web Servicesキーを使用して ClientEncryption オブジェクトを構成する方法を示しています。

    const clientEncryption = new ClientEncryption(keyVaultClient, {
    'aws:key1': {
    accessKeyId: ...,
    secretAccessKey: ...
    },
    'aws:key2': {
    accessKeyId: ...,
    secretAccessKey: ...
    },
    clientEncryption.createDataKey('aws:key-1', { ... });
  • KMIP データキーを作成する際に、 delegatedオプションを指定できるようになりました。 このオプションをtrueに設定すると、KMIP プロバイダーはデータキーの暗号化と復号化をローカルで実行し、暗号化のキーが KMIP サーバーから離れることはありません。 この機能にはmongodb-client-encryption v 6.0.1以降が必要です。

    次のコード例は、このオプションを指定する方法を示しています。

    clientEncryption.createDataKey('kmip', { masterKey: { delegated: true } } );
  • ドライバーは、受信時に BSON 応答全体をデコードするのではなく、カーソルが BSON 応答を反復処理するときに BSON 応答をデコードするようになりました。

  • パッケージのGithubリリースには、NPMパッケージのmongodb 分離された署名ファイル、mongodb-X.Y.Z.tgz.sig が含まれるようになりました。この変更は、ドライバーのバージョン.x5 6および.x のすべてのメジャーおよびパッチ リリースに適用されます。パッケージ署名を検証するには、ドライバーの GitHubリポジトリ内の README.mdファイルの「リリースの整合性」セクションの指示に従います。

このリリースの詳細については GitHub の v6.8.0 リリースノートを参照してください。

Node.js ドライバー v 6.7リリースには、次の機能が含まれています。

  • MongoDB Server v 7.0以降に接続する際にMONGODB-OIDC認証メカニズムのサポートを追加します。 このドライバーは、Azure マシン認証、GCP マシン認証、コールバック認証、人間によるコールバック認証ファセットによる認証をサポートしています。

  • useBigInt64フラグをtrueに設定すると内部compareTopologyVersion関数がエラーを生成する問題を修正します。

このリリースの詳細については GitHub の v6.7.0 リリースノートを参照してください。

Node.js ドライバー v 6.6リリースには、次の機能が含まれています。

  • BSON6.7.0 を使用するようにアップグレードします。 BSON の新機能の詳細については、 BSON6.5.0 BSON..6 60 BSON..6 70のリリースノートを参照してください。

  • フロー集計 API にaddStage()メソッドを追加します。 このメソッドを使用して、次の例に示すように、集計パイプライン ステージを個別に追加できます。

    const documents = await users.aggregate().addStage({ $project: { name: true } }).toArray();
  • causeフィールドとdependencyNameフィールドをMongoMissingDependencyErrorクラスに追加します。 これらのフィールドを使用して、パッケージが欠落しているかどうか、またはパッケージがロードされなかった理由をプログラム的に判断できます。

  • minRoundTripTimeプロパティをServerDescriptionクラスに追加します。 このプロパティには、最後の10ハートビートの最小ラウンドトリップ時間が含まれます。

  • toJSON()メソッドをTopologyDescriptionクラスに追加します。 このメソッドを使用してTopologyDescriptionオブジェクトを JSON に文字列化できますが、代わりに Node のutil.inspect()メソッドを使用することをお勧めします。これは、JavaScript とドライバーで使用されるすべての型を適切に処理するためです。

  • Typescript のCollection.indexExists()Collection.indexes()Collection.indexInformation()メソッドのカーソル オプション サポートを追加します。

  • Collection.listSearchIndexes()メソッドからreadConcernwriteConcernオプションのサポートを削除します。 listSearchIndexes() はAtlas固有のメソッドであり、 Atlas Searchインデックスはこれらのオプションをサポートしていません。

  • ServerDescription.roundTripTimeプロパティを移動平均として再定義します。 以前は、直近で確認されたハートビートの期間とその前の期間の重みによる平均でした。

  • 次の例に示すように、インデックスを作成する際に検索インデックスのタイプを指定できます。

    const indexName = await collection.createSearchIndex({
    name: 'my-vector-search-index',
    type: 'vectorSearch',
    definition: {
    mappings: { dynamic: false }
    }
    });
  • UpdateFilter.$currentDateプロパティは、スキーマが制限されたコレクションでfindOneAndUpdate()などの複合メソッドに渡しても、エラーをスローしなくなりました。

  • ドライバーは、 primary以外のReadPreferenceModeを指定し、読み取り操作を含むコマンドを実行しようとした場合にのみMongoTransactionErrorをスローします。

  • TopologyDescription.errorプロパティのデータ型はMongoErrorです。

  • Collection.indexExists()メソッドはfullオプションをサポートしなくなりました。

  • Collection.indexInformation()Collection.indexes()Db.indexInformation() メソッドの戻り値の型は IndexDescriptionCompact | IndexDescriptionInfo[] です( Typescript )。

  • Amazon Web Services KMS (Key Management System)認証情報を検索するときに、ドライバーは有効期限タイムスタンプを含むアクセス キーを受信してもエラーをスローしなくなりました。

  • ClusterTime インターフェースは、 Typescriptで必要とされる signature フィールドの定義を終了しました。

このリリースの詳細については、Github の v6.6.0 リリースのハイライト を参照してください。

Node.js ドライバー v 6.5リリースには、次の機能が含まれています。

  • ドキュメント ID 生成にpkFactoryクラスを使用するように一括書き込み操作を更新します。

警告

一括書き込みを処理するためにpkFactoryのインスタンスを指定したことがある場合、一括書き込みを使用して挿入されたドキュメントの_idフィールドは、このバージョンの動作と一致しない可能性があります。

  • ドライバーがレプリカセット内のセカンダリ ノードに接続されている場合に読み取り操作で送信される読み込み設定をprimaryPreferredに修正します。

  • ソケット操作の Promise 作成におけるメモリ リークを修正します。

  • DNS シードリストに接続するときに、SRV TXTレコードと レコードを並行してクエリすることで、初回接続レイテンシを軽減します。

  • Kubernetes のクライアントまたは ハンドシェイク ドキュメントのclient.env.containerフィールドでコンテナ環境を実行する際に、コンテナ メタデータに追跡を追加します。

  • サーバーによって返された元のエラードキュメントをMongoServerErrorドキュメントのerrorResponseフィールドに追加します。

  • ドライバーでは使用されていないCloseOptionsインターフェースを廃止します。

このリリースの詳細については、Github の v6.5.0 リリースのハイライト を参照してください。

Node.js ドライバー v 6.4リリースには、次の機能が含まれています。

  • 複数のmongosインスタンスが利用可能な場合、読み取りと書込みの再試行で異なるサーバーが使用されます。

  • 認証ごとではなく、クライアントレベルでAmazon Web Servicesの認証情報をキャッシュします。

  • BSON6.4.0 を使用するようにアップグレードします。 BSON の新機能の詳細については、 BSON6.3.0 およびBSON..6 40のリリースノートを参照してください。

  • ExceededTimeLimitエラーが発生した読み取り操作は再試行されます。

  • TLS ソケットKMS プロバイダーに関連するリクエストの問題を修正します。

  • mongosh 認証を可能にするためにsaslContinueコマンドの基本64パディングを修正します。

  • ではなく countDocumentsを使用して を入力するため、オートコンプリートが可能になり、下流の入力の問題を防ぐことができます。Filter<Schema>Document

  • bulkWriteコマンドの$addToSetオプションの型エラーを修正します。 ドライバーは、 Documentまたはanyから型を拡張したり、任意の型のプロパティを使用したりする場合に、 $addToSet検証をスキップします。

  • ソケットを作成する時間が含まれないように、 ServerHeartbeatSucceededServerHeartbeatFailedイベントのハートビート期間を修正します。

  • カーソル変換ストリームからのエラーを受信するのではなく、適切にエラーを出力します。

  • ユーザー名とパスワードが提供されている場合にAmazon Web Servicesセッション トークンを任意にし、 Amazon Web Services SDK が認証リクエストを処理できるようにします。

このリリースの詳細については、Github の v6.4.0 リリースのハイライト を参照してください。

Node.js ドライバー v6.3 リリースには、次の機能が含まれています。

  • トポロジー内のノード間のモニタリング接続の動作を制御するためにserverMonitoringModeクライアント オプションを追加します。 このオプションには、 auto (デフォルト)、 poll 、またはstreamの値が指定されます。 詳細については、接続オプションガイドのこのオプションに関するエントリを参照してください。

    serverMonitoringMode オプションは、MongoClientOptions インスタンス内で、または接続stringオプションとして設定できます。 次の例は、 オプションをstreamに設定してクライアントを作成する方法を示しています。

    new MongoClient('<connection string>', { serverMonitoringMode: 'stream' });
  • serverApiクライアント オプションが設定されている場合の接続リークを修正します。

  • contentTypealiases GridFS オプションを廃止します。 contentTypealiasesファイルのコンテンツタイプとエイリアスを保存するには、metadata ドキュメントに フィールドと フィールドを追加します。

このリリースの詳細については、 v6.3.0 リリースのハイライト を参照してください。

Node.js ドライバー v6.2 リリースには、次の機能が含まれています。

  • 次の画像に示すように、タイプの色可視化を含めるために、 bsonパッケージ バージョンを 6.2.0 にアップデートします。

    色付きの印刷を表示するターミナルのスクリーンショット

    詳細については、 bson v6.2.0 リリースノートを参照してください。

  • 一括書き込みエラータイプのresult.insertedIdsプロパティに、正常に挿入されたドキュメントの_id値が含まれていることを確認します。 以前のバージョンでは、一括書き込み操作が挿入操作を拒否する場合、 result.insertedIdsプロパティには試行されたすべての挿入の_id値が含まれていました。

  • 時系列コレクションでfindOne()メソッドを実行中に作成された暗黙的なセッションは、操作の結果に関係なく閉じます。

  • .文字で始まる名前または末尾のコレクションを作成できるようにします。 この変更により、ドライバーのデータベースとコレクションの名前をチェックする動作がサーバーの と一致します。

このリリースの詳細については、 v6.2.0 リリースのハイライト を参照してください。

Node.js ドライバー v6.1 リリースには、次の機能が含まれています。

このリリースの詳細については、 v6.1.0 リリースのハイライト を参照してください。

警告

v6.0 での重大な変更

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

Node.js ドライバー v6.0 リリースには、次の機能が含まれています。

重要

非推奨に関する通知

MongoClientOptionsタイプのsslプレフィックス付きオプションはすべて非推奨です。 また、 tlsCertificateFileオプションは非推奨です。

代わりに、証明書をSecureContextオブジェクトに保存するか、 MongoClientOptionsインスタンスでtlsプレフィックス付きオプションを設定する必要があります。 詳細については、 「 接続で TLS を有効にする 」を参照してください。

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

  • collStats操作のサポートを廃止します。 代わりに、 $collStats集計演算子を使用してください。

  • ConnectionPoolCreatedEvent型のoptionsフィールドには、デフォルト以外のプール オプションである次のフィールドのみが含まれます。

    • maxConnecting

    • maxPoolSize

    • minPoolSize

    • maxIdleTimeMS

    • waitQueueTimeoutMS

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

  • keepAlivekeepAliveInitialDelay接続オプションを削除します。 keepAliveの値は永続的にtrueに設定され、 keepAliveInitialDelayの値は 300000 ミリ秒(300 秒)に設定されます。

    システム レベルでキープアライブ設定を設定する方法については、 「 TCP キープアライブ時間が MongoDB デプロイに及ぼす影響 」を参照してください。 サーバー マニュアルの FAQ エントリ。

  • Db.command()メソッドの次のオプションを削除します。

    • willRetryWrite

    • omitReadPreference

    • writeConcern

    • explain

    • readConcern

    • collation

    • maxTimeMS

    • comment

    • retryWrites

    • dbName

    • authdb

    • noResponse

    これらのオプションをDb.command()メソッドに渡すことはできませんが、コマンド ドキュメントで設定できます。 詳細については、「 コマンドの実行 」ガイドの「コマンド オプション 」セクションを参照してください。

このリリースの詳細については、 v6.0.0 リリースのハイライト を参照してください。

戻る

参照

項目一覧