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 で追加される機能
  • 5.9 の新機能
  • 5.8 の新機能
  • 5.7 の新機能
  • 5.6 の新機能
  • 5.5 の新機能
  • 5.4 の新機能
  • 5.3 の新機能
  • 5.2 の新機能
  • 5.1 の新機能
  • 5.0 の新機能
  • 4.17 の新機能
  • 4.16 の新機能
  • 4.15 の新機能
  • 4.14 の新機能
  • 4.13 の新機能
  • 4.12 の新機能
  • 4.11 の新機能
  • 4.10 の新機能
  • 4.9 の新機能
  • 4.8 の新機能
  • 4.7 の新機能
  • 4.6 の新機能
  • 4.5 で追加された機能
  • 4.4 の新機能
  • 4.3 の新機能
  • 4.2 の新機能
  • 4.1 の新機能
  • 4.0 の新機能
  • 3.7 の新機能
  • 3.6 の新機能

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

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

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

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

  • 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の所有者である必要があります。 この変更により、これらのオプションに関連するグローバルなプロトタイプ環境のバグを防ぐことができます。 独自のプロパティの詳細については、 Object.hasOwn() を参照してください MDN 上の。

  • 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が起動するまでの時間を表します。

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

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 応答をデコードするようになりました。

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

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

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

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

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

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

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

  • BSON 6.7.0を使用するようにアップグレードします。 BSON の新機能の詳細については、 BSON6.5.0 のリリースノートを参照してください。 、BSON6 。6 。0BSON6 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 フィールドの定義を終了しました。

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

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

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

警告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 リリースには、次の機能が含まれています。

  • bsonパッケージ バージョンを6.1.0に更新して、 Decimal128.fromStringWithRounding()メソッドを公開します。 詳細については、 v6.1 .0BSON リリースノート を参照してください。

  • MONGODB-AWS認証メカニズムを使用して認証するときに、リージョン設定の環境変数を検出します。 リージョン オプションを使用するようにドライバーに指示するには、次の環境変数の両方を設定する必要があります。

    • AWS_STS_REGIONAL_ENDPOINTS

    • AWS_REGION

  • ChangeStream型のnext()メソッドへの再帰呼び出しによって発生するメモリ リークの問題を修正します。

このリリースの詳細については、 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 リリースのハイライトを参照してください。

重要

v5.8 から v5.9 にアップグレード

このバージョンには、v5.7 で導入されたメモリ リークに対する修正が含まれています。 v5.9 にアップグレードすることをお勧めします。

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

  • v5.7 で導入されたメモリ リークを修正しました。

  • Decimal128コンストラクターとfromString()メソッドは、 34桁を超える精度の損失を検出した場合に例外をスローするようになりました。 Decimal128クラスは、ドライバーの以前のバージョンの丸め動作を使用する新しいfromStringWithRounding()静的メソッドを公開します。 詳細について は、 js-bson パッケージの v のリリースノートを5.5 参照してくださいGithub .

  • Amazon Web Services SDK で fromNodeProviderChain() メソッドを呼び出すときに、AWS_STS_REGIONAL_ENDPOINTSAWS_REGION 環境変数を検出し、適切なオプションを設定するためのサポートを追加しました。

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

重要

v5.8 から v5.9 にアップグレード

このバージョンには、v5.7 で導入されたメモリ リークに対する修正が含まれています。 v5.9 にアップグレードすることをお勧めします。

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

重要

非推奨に関する通知

AutoEncrypterインターフェースは非推奨です。

  • Kerberos バージョン 1.x および 2.x のサポート。

  • tlsCertificateKeyFileプロパティを設定すると、 tlsCertificateFileプロパティでは非推奨エラーは表示されません。

  • ConnectionPoolCreatedEventタイプの認証情報の可用性を削除します。 MongoOptionsインスタンスのcredentialsプロパティから認証情報にアクセスするには、引き続き認証情報にアクセスできます。

  • @aws-sdk/credential-providersのバージョンを 3.188.0 に下げます およびzstdを ^1.0.0 に設定します。

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

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

重要

非推奨に関する通知

  • 次の書込み保証 (write concern) オプションは非推奨です。

    • wtimeout

    • j

    • fsync

    書込み保証(write concern)の動作を指定するには、代わりにwtimeoutMSjournalオプションを使用します。 これらのオプションの詳細については、「接続オプション 」ページを参照してください。

  • SSL オプションおよびその他のトランスポート暗号化オプションは非推奨です。 非推奨のオプションと代わりに使用するオプションの詳細については、このセクションの最後にリンクしている v5.7.0 リリースのハイライト の「 レガシー SSL オプションの非推奨 」セクションを参照してください。

  • 複合操作メソッドの新しいオプション。 includeResultMetaDataオプションを使用すると、操作結果に関する情報を含めるかどうかを指定できます。 詳細については、 複合操作 ガイドの「組み込みメソッド」セクションを参照してください。

  • 変更ストリーム分裂 イベントのサポートにより、16 MB の最大 BSON サイズ制限を超える変更ストリーム ドキュメントの処理が可能になります。

  • アプリケーション内から検索インデックスを管理するための API。 詳しくは、「検索インデックス 」を参照してください。

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

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

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

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

  • ドライバーは、AWS_Lambda_ で始まる場合のみAmazon Web Servicesの環境変数を考慮して、 Amazon Web Servicesの Function-as-a-Service(FaaS)環境を正確に検出できるようになりました。

  • Queryable Encryption 機能を使用して暗号化されたコレクションを作成する場合は、 mongodb-client-encryptionをバージョン 2.8.0 以降にアップグレードする必要があります。

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

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

重要

非推奨に関する通知

  • collStats操作は非推奨です。 代わりに、 $collStats集計演算子を使用してください。

  • db.command() メソッドに渡されるTypescriptインターフェースに、特定のオプションが誤って含まれています。 これらのオプションは非推奨になりました。

  • ChangeStream.tryNextメソッドでは、 Documentインターフェースではなく、スキーマ固有のTChangeジェネリック型が使用されるようになりました。

詳しくは、 v5.4.0 リリースのハイライト を参照してください。

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

重要

非推奨に関する通知

  • クエリや集計結果に反復的にアクセスできるforEach()カーソル メソッドは非推奨です。 代わりに、 for await...of構文を使用してください。

  • addUser()メソッドは非推奨です。 代わりにcreateUser()を使用してください。

  • keepAlivekeepAliveInitialDelay接続オプションは非推奨です。

  • BulkWriteResultクラスに重複する機能を含むメソッドは非推奨です。 API ドキュメント を参照してください 非推奨のメソッドと推奨される代替手段の完全なリストは、 を参照してください。

  • クライアント メタデータに、サービスとしての関数(FaaS)の環境情報と代替のランタイム検出が含まれるようになりました。

  • ドライバーでは、末尾にドットを含む SRV レコード アドレスが許可されるようになりました。

  • UpdateResult.upsertedId ドキュメントがアップデートされていない場合、null を返すようになりました。

詳しくは、 v5.3.0 リリースのハイライト を参照してください。

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

  • ドライバーは、自動 Queryable Encryption を使用するときに Azure 認証情報の自動取得をサポートするようになりました。

詳しくは、 v5.2.0 リリースのハイライト を参照してください。

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

  • ドライバーがbigintからBSON.Longへの JavaScript の自動直列化をサポートするようになりました また、 useBigInt64フラグが true として渡される場合に、サーバーから返されたBSON.Long値からbigint値への逆直列化もサポートされています。

詳しくは、 v5.1.0 リリースのハイライト を参照してください。

警告

v5.0 での重大な変更

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

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

  • デフォルトでは、ドライバーは、 StrictFilter型注釈が明示的に使用されていない限り、ドット表記で参照される型をチェックしなくなりました。 この変更の詳細については、 Typescript の基礎ページ を参照してください。

    注意

    この変更は Typescript のみで、実行時にクエリや操作には影響しません。

  • ピア依存関係としての@aws-sdk/credential-providersの任意のインストール。

    • ドライバーにはデフォルトでAmazon Web Services SDK モジュールが含まれなくなりました。 SDK をインストールするには、次のnpmコマンドを使用します。

      npm install --save "@aws-sdk/credential-providers@^3.201.0"

      SDK をインストールすると、インストールした SDK のバージョンがドライバーと互換性がない場合、 npmが通知します。 依存関係を正常にインストールすると、ドライバーはAmazon Web Services SDK 自体を使用して環境から認証情報を管理します。

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

  • mongodb-js/saslprepパッケージをドライバーの依存関係として追加します。

  • Queryable Encryption 機能との互換性を改善します。

詳しくは、 v4.17.0 リリースのハイライト を参照してください。

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

  • ドライバー ハンドシェイク メタデータに Function-as-a-Service(FaaS)プラットフォーム情報を含めます。

  • クライアント メタデータで Deno ランタイムの使用を識別します。

詳しくは、 v4.16.0 リリースのハイライト を参照してください。

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

  • サービス アカウントのAmazon Web Services IAM ロール をサポートします。

詳しくは、 v4.15.0 リリースのハイライト を参照してください。

重要

v4.13 から v4.14 にアップグレード

このバージョンには、 v4.13 で導入されたメモリ リークに対する修正が含まれています。 v4.14 にアップグレードすることをお勧めします。

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

  • v4.13 で導入されたメモリ リークを修正しました。

  • レガシー ロガーを参照するメソッドとオプションが非推奨になりました。

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

  • ドライバーがネットワーク タイムアウト エラーを発生させると、接続プール内の移動中の操作が自動的にキャンセルされます。

  • linearizableおよびavailableの読み取り保証 (read concern) 設定との競合を防ぐために、暗黙的なセッションで因果整合性を無効にしました。

  • 接続が破棄されるたびにドライバーがMessageStreamインスタンスを破棄するようにして、潜在的なメモリリークを修正しました。

重要

ドライバーをバージョン 4.12.1 にアップグレード

4.12.1 Node.js ドライバーには、プロセスがクラッシュする可能性のあるモニタリング ロジックの回帰に対する修正が含まれています。

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

  • ChangeStreamクラスを非同期反復可能として再定義します。 AsyncIteratorを必要とするコンテキストでは、 ChangeStreamインスタンスを使用できます。

    • さらに、変更ストリームはJavaScript for-await ループで使用できるようになりました。

      const changeStream = myColl.watch();
      for await (const change of changeStream) {
      console.log("Received change: ", change);
      }
  • ドライバーが監視イベントをスキップするときにサーバー監視を修正します。 このリリースでは、ドライバーは監視イベントを処理するときに常にトポロジーのビューを更新します。

  • ドライバーの内部使用データ構造が変更された結果、バッファリングによるパフォーマンスの向上。

詳しくは、 v4.12.0 リリースのハイライト を参照してください。

MongoDB Server バージョン 6.0 以降に接続する場合、ドライバーはサーバー検出およびモニタリング イベント中にsetVersion設定よりもelectionId設定を優先します。 以前のバージョンでは、優先順位は逆でした。

オプションの aws-sdk/credential-providers 依存関係をインストールすると、ドライバーはAmazon Web Services SDK を使用して環境からAmazon Web Servicesの認証情報を検索します。

この動作の詳細については、 認証メカニズム ガイドの「 MONGODB-AWS 」セクションを参照してください。

このリリースには、相互再帰コレクション スキーマ タイプのサポートが追加されました。 また、このリリースではドット表記クエリに対して最大深度 8 までの型の安全性も提供します。 深度が「8」以上の場合、Typescript はコードを正常にコンパイルしますが、型の安全性は提供されません。 再帰型のこの深度制限は、 Typescriptの現在の制限です。

次の相互再帰型を含む、タイプCollection<Author>のコレクションがあるとします。

interface Author {
name: string;
bestBook: Book;
}
interface Book {
title: string;
author: Author;
}

Typescriptは型チェックを最大「8」の深度まで強制します。 次のコードでは、name プロパティ値が string 型である必要があるため、 Typescriptコンパイル エラーが発生します。

myColl.findOne({ 'bestBook.author.bestBook.title': 25 });

深度が「8」以上の場合、 Typescriptはコードをコンパイルしますが、型チェックは行いません。 たとえば、次のコードはnumberstringプロパティに割り当てますが、参照されるプロパティの深度が「10」であるため、コンパイル エラーは発生しません。

myColl.findOne({
'bestBook.author.bestBook.author.bestBook.author.bestBook.author.bestBook.author.name': 25
});

詳しくは、 v4.11.0 リリースのハイライト を参照してください。

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

  • コールバックの廃止

詳しくは、「 v4.10.0 リリースのハイライト 」を参照してください。

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

  • タイプ定義におけるwriteConcernオプションとの不整合を修正しました。

  • 自動 UUID サポートを追加する最新の BSON リリースが含まれています。 See the BSON release notes here.

詳しくは、「 v4.9.0 リリースのハイライト 」を参照してください。

重要

v4.8.0 から v4.8.1 にアップグレード

バージョン 4.8.1 は、v4.8.0 で導入された型回帰の問題を修正しています。 v4.8.1 にアップグレードすると、_id 演算子または 演算子を使用して更新を実行するときに、$set $setOnInsert値とサブドキュメントを指定できます。

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

  • アップデート フィルター内のネストされたキーのオートコンプリートとタイプの安全性を追加しました

  • client.startSession() MongoDB に接続する前に呼び出せるようになりました

  • estimatedDocumentCount() メソッドがコメントを受け入れることができるようになりました

詳しくは、「 v4.8.0 リリースのハイライト 」を参照してください。

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

  • MongoDB インスタンスに接続するときにMongoClient.connect()メソッドが任意になりました

  • Zstandard圧縮アルゴリズムでメッセージを圧縮する機能

  • maxConnecting接続オプションのサポートを追加しました

  • 更新前と更新後にドキュメントを表示する変更ストリーム ドキュメントの機能

  • クラスター間のレプリケーションに関連する新しい変更ストリーム フィールドのサポートを追加しました

  • estimatedDocumentCount()メソッドで$countデータベースコマンドが使用されるようになりました

  • 初期化フェーズでの への接続を改善しましたMongoDBAmazon Web ServicesLambda

重要

非推奨に関する通知

ResumeOptionsインターフェースは非推奨です。 代わりに、 ChangeStreamCursorOptionsインターフェースを使用してください。

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

  • Typescriptの ChangeStreamDocument を改善しました。

  • サーバー全体の負荷に基づいて、サーバーを選択する際の均等な分散。

詳しくは、「 v4.6.0 リリースのハイライト 」を参照してください。

v4.5.0 リリースのハイライト を参照してください Github.

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

  • CSFLE を使用する場合の KMIP プロバイダー サポート。

  • CSFLE を使用する場合の TLS サポート。

  • ホスト名の正規化で、GSSAPI を使用する場合、「none」、「forward」、「forwardAndReverse」をauthMechanismPropertiesとして受け入れるようになりました。

  • ドライバーの 4.0.0 リリースでは、非推奨のcollection.count()メソッドが誤ってcollection.countDocuments()のように動作するように変更されました。 このリリースでは、 collection.count()メソッドがレガシー動作と一致するようにアップデートされます。

    • クエリが指定された場合、 collection.count()collection.countDocuments()と同じように動作し、コレクションスキャンを実行します。

    • クエリが指定されていない場合、 collection.count()collection.estimatedDocumentCount()と同じように動作し、コレクション メタデータに依存します。

    重要

    非推奨に関する通知

    cursor.count()メソッドは非推奨であり、次のメジャー バージョンでcollection.count()とともに削除される予定です。 collection.estimatedDocumentCount()collection.countDocuments()代わりに、 メソッドまたは メソッドを使用してください。

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

  • SOCKS5 のサポート

  • UTF-8 検証を無効にするオプション

  • ネストされたドキュメントの型推論

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

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

警告

v4.0 での重大な変更

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

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

重要

ドライバーのこのリリースでは、非推奨のcollection.count()メソッドが誤って変更され、 collection.countDocuments()のように動作するようになりました。 この動作はバージョン4.4で修正されています。

  • ドライバーをTypescriptに移行しました。 MongoDB アプリケーションを開発する際に、型ヒントとインテリジェンス機能をサポートするエディターで型ヒントとインテリジェンス機能を利用できるようになりました。 単純な JavaScript プロジェクトでも、この機能の利点を活用できます。

  • このバージョンで使用される基礎のBSONライブラリは、 Typescriptに移行されました。

  • エディターでの表示を改善するために、インライン ドキュメントが一貫してフォーマットされるようになりました。

  • コミュニティ タイプ@types/mongodbのユーザーの場合、コードベースからタイプを採用する際に問題が発生する可能性があります。 Typescriptでのコードベースの記述により、タイプの 1 対 1 の一致を実現できませんでした。

Typescript関連の機能リクエストをお読みください。 JIRA プロジェクトに関する提案は、ここから送信してください。

Node.js でサポートされている最小バージョンは、ドライバーのバージョン 4 で v12.9 以降になりました。 3.x ブランチのサポートは 2022 年中間まで継続し、ユーザーがアップグレードにできる時間を確保します。

注意

3.x は Node.js v4 への戻りをサポートします。

カーソル の実装がアップデートされ、操作の実行前と実行後に可能な操作が明確になるようになりました。

const fc = myColl.find({a: 2.3}).skip(1)
for await (const doc of fc) {
console.log(doc)
fc.limit(1) // incorrect usage, cursor already executing
}

カーソルの実行が開始された後に 設定が適用された場合、カーソルがエラーを発生させる方法に関して一貫性がありませんでした。 現在、カーソルは、無効な状態で操作を適用しようとすると、次のようなエラーをスローします。

MongoError: Cursor is already initialized

  • 影響を受けるクラス:

    • AbstractCursor

    • FindCursor

    • AggregationCursor

    • ChangeStreamCursor (これはChangeStreamの基礎となるカーソルです)

    • ListCollectionsCursor

カーソル型はReadableを直接拡張しなくなりました。 これらはcursor.stream()を呼び出してストリームに変換する必要があります。

const cursor = myColl.find({});
const stream = cursor.stream();
stream.on("data", data => console.log);
stream.on("error", () => client.close());

手動反復処理にはhasNext()next()を使用します。 非同期反復には、 for await of構文または任意のPromiseヘルパーを使用します。

タイプ ヒントを使用すると、 MongoClientに渡されるオプションが列挙され、検索可能であることがわかります。 アプリを正しい状態ですばやく起動して実行するために、互換性のない設定に関する早期警告を発するために、ドライバーのすべてのオプションを処理するために多くの労力を費やしました。

  • checkServerIdentity は、基礎の Node API に渡される前にチェックされなくなりました。 以前は、許容値はfalseまたは 関数 でした。 ここで、引数は関数である必要があります。 ブール値を指定すると、エラーがスローされます。

  • useUnifiedTopologyまたはuseNewUrlParserを指定する必要がなくなりました。

このメソッドは、コレクションが存在しない場合にエラーを返すstrictオプションのサポートを終了しました。 コレクションの存在をアサートするには、代わりにlistCollections()メソッドを使用します。

const collections = (await db.listCollections({}, { nameOnly: true })
.toArray()).map(
({name}) => name
);
if (!collections.includes(myNewCollectionName)) {
throw new Error(`${myNewCollectionName} doesn't exist`);
}

BulkWriteError の名前がMongoBulkWriteErrorに変更されました。

書き込みを行う一括操作を実行すると、 の設定によってはエラーが発生する可能性があります。 一括操作でエラーをテストするときに、新しいクラス名MongoBulkWriteErrorをインポートします。

DBEventEmitterではなくなりました。 MongoClientインスタンスから直接イベントをリッスンします。

MongoDB 3.4以降では非推奨となっているCollection.group()ヘルパーが削除されました。 代わりに、集計パイプライン$group演算子を使用してください。

  • gssapiServiceName は削除されました。 authMechanismProperties.SERVICE_NAME MongoClientOptionsの 使用 URI の または のオプションとして。

    ?authMechanismProperties.SERVICE_NAME
    // or
    new MongoClient(url, { SERVICE_NAME: "alternateServiceName" })
  • オプションとしてのユーザー名とパスワードの指定は、 URI で またはMongoClientOptionsのオプションとしてのみサポートされます。

    new MongoClient("mongodb://<db_username>:<db_password>@<host><port>")
    // or
    new MongoClient(url, { auth: { username: "<db_username>", password: "<db_password>" } })

GridStore API( 3 .x ですでに非推奨)はGridFSBucketに置き換えられました。 GridFS の詳細については、 MongoDBマニュアルを参照してください。

以下は、同等の操作を表すいくつかのスニペットです。

// old way
const gs = new GridStore(db, filename, mode[, options])
// new way
const bucket = new GridFSBucket(client.db('test')[,options])

GridFSBbucket は Node.js Stream API を使用します。 startendオプションを使用してファイル検索を複製し、 GridFSBucketからダウンロード ストリームを作成できます。

bucket.openDownloadStreamByName(filename, { start: 0, end: 100 })

await client.connect();
const filename = 'test.txt'; // whatever local file name you want
const db = client.db();
const bucket = new GridFSBucket(db);
fs.createReadStream(filename)
.pipe(bucket.openUploadStream(filename))
.on('error', console.error)
.on('finish', () => {
console.log('done writing to db!');
bucket
.find()
.toArray()
.then(files => {
console.log(files);
bucket
.openDownloadStreamByName(filename)
.pipe(fs.createWriteStream('downloaded_' + filename))
.on('error', console.error)
.on('finish', () => {
console.log('done downloading!');
client.close();
});
});
});

注意

GridFSBucketGridStoreのように閉じる必要はありません。

// old way
GridStore.unlink(db, name, callback);
// new way
bucket.delete(file_id);

GridStoreインスタンスでアクセス可能であったファイル メタデータは、 バケットをクエリすることで見つかります。

const fileMetaDataList: GridFSFile[] = bucket.find({}).toArray();
  • mongodに接続した場合にのみunifiedTopologyを内部的に管理するようになりました。 このバージョンと以前のバージョンの違いは、 ここで詳しく説明します。

  • useUnifiedTopologyまたはuseNewUrlParserを指定する必要がなくなりました。

  • 新しいdirectConnection オプション を使用する必要があります 初期化されていないレプリカセット メンバーに接続します。

きめ細かな冗長モードのサポートが追加されました。 各モードの詳細については、こちらをご覧ください。

instrument()メソッドが削除されました。 代わりに、コマンド モニタリングを使用してください。 詳細については、コマンド監視に関するガイドを参照してください。

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

  • useUnifiedTopologyオプションを有効にしながら、ロード バランサー モードのサポートを追加しました

  • useUnifiedTopologyオプションを有効にしながらStable APIのサポートを追加しました

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

  • MONGODB- Amazon Web Services Amazon Web Services ( Amazon Web Services )の IAM(Identity and Access Management、ID とアクセス管理)認証情報を使用する Amazon Web Services 認証メカニズムのサポートを追加しました

  • find() allowDiskUse()メソッドは、RAM で実行するために多くのメモリを必要とするソートにサポートします

  • update( ) メソッドとreplaceOne()メソッドはインデックスのヒントをサポートします

  • トポロジーの変更とフェイルオーバー イベントのリカバリ時間の短縮

  • デフォルトのwriteConcernの検証テストを改善しました

  • 認証に必要なサーバーへのラウンドトリップが少なくなり、接続設定が高速化されます

  • Salted Challenge Response Authentication Mechanism( SCRAM )の対話の短縮

  • 複数のドキュメントトランザクションのコレクションとインデックスを作成する機能

  • バックグラウンドでのコレクションの検証の実行

戻る

クイック リファレンス