次の新機能をご覧ください。
6.9の新機能
MongoDB Server 3.6のサポートは非推奨であり、今後のドライバー リリースで削除される予定です。
ドライバーは、カーソルと
MongoClient、ClientSession、および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_CHAINOpenSSL フラグを制御します。ConnectionCheckedOutEventとConnectionCheckFailedEventにdurationMSプロパティが含まれるようになりました。 このプロパティは、接続チェックアウト操作の開始と終了までの経過時間を示します。Node.js 18以降を使用している場合、ドライバーは
cryptoCallbacksオプションを無視し、代わりに C++ で定義されたコールバックを使用するため、暗号化のパフォーマンスが大幅に向上します。 この変更は v 6.1.0で利用可能です。mongodb-client-encryptionパッケージのバージョンセキュリティを強化するには、
mongocryptdのスピニング パスと引数を指定するオプションは、autoEncryption.extraOptionsのプロパティである必要があります。この変更により、これらのオプションに関連するグローバルなプロトタイプ環境のバグを防ぐことができます。 独自のプロパティの詳細については、MDN の Object.hasOwn() を参照してください。Queryable Encryption(QE)範囲クエリの公式サポートを追加します。 この機能を使用するには、アプリで
mongodb-client-encryptionv 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プロパティは、BSONBinaryのAutoEncryptionOptionsインスタンスを受け入れます。Typescriptでは、
BulkOperationBaseクラスがlengthgetter プロパティを報告します。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 リリースノート を参照してください。
6.8の新機能
Node.js ドライバー v 6.8リリースには、次の機能が含まれています。
ローカルKMSプロバイダーは実行時に
BSON Binaryインスタンスを受け入れましたが、 TypescriptコンパイラーはBufferとstringのタイプの値のみを許可するバグを修正しました。ReadConcernMajorityNotAvailableYetエラーは再試行可能な読み取りエラーになりました。KMS プロバイダーに名前を関連付け、複数のキーを提供できるようになりました。 この機能には
mongodb-client-encryptionv 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-encryptionv 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 のすべてのメジャーおよびパッチ リリースに適用されます。パッケージ署名を検証するには、ドライバーのGithubリポジトリ内の README.mdファイルの 「リリースの整合性」セクションの指示 に従います。
このリリースの詳細については、 Githubの v6.8.0 リリースノート を参照してください。
6.7の新機能
Node.js ドライバー v 6.7リリースには、次の機能が含まれています。
MongoDB Server v 7.0以降に接続する際に
MONGODB-OIDC認証メカニズムのサポートを追加します。 このドライバーは、Azure マシン認証、GCP マシン認証、コールバック認証、人間によるコールバック認証ファセットによる認証をサポートしています。useBigInt64フラグをtrueに設定すると内部compareTopologyVersion関数がエラーを生成する問題を修正します。
このリリースの詳細については、 Githubの v6.7.0 リリースノート を参照してください。
6.6の新機能
Node.js ドライバー v 6.6リリースには、次の機能が含まれています。
BSON 6.7.0 を使用するようにアップグレードします。BSON の新機能の詳細については、BSON 6.5.0 のリリースノートを参照してください。BSON 6.6.0、BSON 6.7.0
フロー集計 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()メソッドからreadConcernとwriteConcernオプションのサポートを削除します。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 リリースのハイライト を参照してください。
6.5の新機能
Node.js ドライバー v 6.5リリースには、次の機能が含まれています。
ドキュメント ID 生成に
pkFactoryクラスを使用するように一括書き込み操作を更新します。
警告
一括書き込みを処理するためにpkFactoryのインスタンスを指定したことがある場合、一括書き込みを使用して挿入されたドキュメントの_idフィールドは、このバージョンの動作と一致しない可能性があります。
ドライバーがレプリカセット内のセカンダリ ノードに接続されている場合に読み取り操作で送信される読み込み設定を
primaryPreferredに修正します。ソケット操作の Promise 作成におけるメモリ リークを修正します。
DNS シードリストに接続するときに、
SRVTXTレコードと レコードを並行してクエリすることで、初回接続レイテンシを軽減します。Kubernetes のクライアントまたは ハンドシェイク ドキュメントの
client.env.containerフィールドでコンテナ環境を実行する際に、コンテナ メタデータに追跡を追加します。サーバーによって返された元のエラードキュメントを
MongoServerErrorドキュメントのerrorResponseフィールドに追加します。ドライバーでは使用されていない
CloseOptionsインターフェースを廃止します。
このリリースの詳細については、Github の v6.5.0 リリースのハイライト を参照してください。
6.4の新機能
Node.js ドライバー v 6.4リリースには、次の機能が含まれています。
複数の
mongosインスタンスが利用可能な場合、読み取りと書込みの再試行で異なるサーバーが使用されます。認証ごとではなく、クライアントレベルでAmazon Web Servicesの認証情報をキャッシュします。
BSON 6.4.0 を使用するようにアップグレードします。BSON の新機能の詳細については、BSON 6.3.0 および BSON 6.4.0 のリリースノートを参照してください。
ExceededTimeLimitエラーが発生した読み取り操作は再試行されます。mongosh 認証を可能にするために
saslContinueコマンドの基本64パディングを修正します。ではなく
countDocumentsを使用して を入力するため、オートコンプリートが可能になり、下流の入力の問題を防ぐことができます。Filter<Schema>DocumentbulkWriteコマンドの$addToSetオプションの型エラーを修正します。 ドライバーは、Documentまたはanyから型を拡張したり、任意の型のプロパティを使用したりする場合に、$addToSet検証をスキップします。ソケットを作成する時間が含まれないように、
ServerHeartbeatSucceededとServerHeartbeatFailedイベントのハートビート期間を修正します。カーソル変換ストリームからのエラーを受信するのではなく、適切にエラーを出力します。
ユーザー名とパスワードが提供されている場合にAmazon Web Servicesセッション トークンを任意にし、 Amazon Web Services SDK が認証リクエストを処理できるようにします。
このリリースの詳細については、Github の v6.4.0 リリースのハイライト を参照してください。
6.3 で追加される機能
Node.js ドライバー v6.3 リリースには、次の機能が含まれています。
トポロジー内のノード間のモニタリング接続の動作を制御するために
serverMonitoringModeクライアント オプションを追加します。 このオプションには、auto(デフォルト)、poll、またはstreamの値が指定されます。 詳細については、接続オプションガイドのこのオプションに関するエントリを参照してください。serverMonitoringModeオプションは、MongoClientOptionsインスタンス内で、または接続stringオプションとして設定できます。 次の例は、 オプションをstreamに設定してクライアントを作成する方法を示しています。new MongoClient('<connection string>', { serverMonitoringMode: 'stream' }); serverApiクライアント オプションが設定されている場合の接続リークを修正します。contentTypeとaliasesGridFS オプションを廃止します。contentTypealiasesファイルのコンテンツタイプとエイリアスを保存するには、metadataドキュメントに フィールドと フィールドを追加します。
このリリースの詳細については、v6.3.0 リリースのハイライト を参照してください。
6.2 の新機能
Node.js ドライバー v6.2 リリースには、次の機能が含まれています。
次の画像に示すように、タイプの色可視化を含めるために、
bsonパッケージ バージョンを 6.2.0 にアップデートします。![色付きの印刷を表示するターミナルのスクリーンショット]()
詳細については、 BSON v6.2.0 リリースノート を参照してください。
一括書き込みエラータイプの
result.insertedIdsプロパティに、正常に挿入されたドキュメントの_id値が含まれていることを確認します。 以前のバージョンでは、一括書き込み操作が挿入操作を拒否する場合、result.insertedIdsプロパティには試行されたすべての挿入の_id値が含まれていました。時系列コレクションで
findOne()メソッドを実行中に作成された暗黙的なセッションは、操作の結果に関係なく閉じます。.文字で始まる名前または末尾のコレクションを作成できるようにします。 この変更により、ドライバーのデータベースとコレクションの名前をチェックする動作がサーバーの と一致します。
このリリースの詳細については、v6.2.0 リリースのハイライト を参照してください。
6.1 で追加された機能
Node.js ドライバー v6.1 リリースには、次の機能が含まれています。
bsonパッケージバージョンを 6.1.0 に更新して、Decimal128.fromStringWithRounding()メソッドを公開します。詳細については、v6.1.0 BSONリリースノート を参照してください。認証とともに IAM AssumeRoleWithWebIdentityアクションを使用して認証するときに、リージョン設定の環境変数を検出します。
MONGODB-AWSリージョン オプションを使用するようにドライバーに指示するには、次の環境変数の両方を設定する必要があります。AWS_STS_REGIONAL_ENDPOINTSAWS_REGION
MONGODB-AWS認証メカニズムを使用するときにリージョン設定を設定する方法については、 認証メカニズムガイドの MONGODB-AWSセクションの [Web Identity Token]タブを参照してください。ChangeStream型のnext()メソッドへの再帰呼び出しによって発生するメモリ リークの問題を修正します。
このリリースの詳細については、v6.1.0 リリースのハイライト を参照してください。
6.0 で追加される機能
警告
v6.0 での重大な変更
このドライバー バージョンでは、重大な変更が導入されています。 これらの変更のリストについては、アップグレード ガイドの「バージョン6.0重大な変更 」セクションを参照してください。
Node.js ドライバー v6.0 リリースには、次の機能が含まれています。
重要
非推奨に関する通知
MongoClientOptionsタイプのsslプレフィックス付きオプションはすべて非推奨です。 また、 tlsCertificateFileオプションは非推奨です。
代わりに、証明書をSecureContextオブジェクトに保存するか、 MongoClientOptionsインスタンスでtlsプレフィックス付きオプションを設定する必要があります。 詳細については、 「 接続で TLS を有効にする 」を参照してください。
addUser()ヘルパー コマンドのサポートを廃止します。 代わりにcreateUser MongoDB Shell コマンドを使用してください。collStats操作のサポートを廃止します。 代わりに、 $collStats集計演算子を使用してください。ConnectionPoolCreatedEvent型のoptionsフィールドには、デフォルト以外のプール オプションである次のフィールドのみが含まれます。maxConnectingmaxPoolSizeminPoolSizemaxIdleTimeMSwaitQueueTimeoutMS
ドライバーは、 インスタンスを作成したときではなく、 メソッドを呼び出したときに、
tlsCAFiletlsCertificateKeyFile接続オプションとMongoClient.connect()MongoClient接続オプションで設定されているファイルを非同期に読み取ります。keepAliveとkeepAliveInitialDelay接続オプションを削除します。keepAliveの値は永続的にtrueに設定され、keepAliveInitialDelayの値は 300000 ミリ秒(300 秒)に設定されます。システム レベルでキープアライブ設定を設定する方法については、 「 TCP キープアライブ時間が MongoDB デプロイに及ぼす影響 」を参照してください。 サーバー マニュアルの FAQ エントリ。
Db.command()メソッドの次のオプションを削除します。willRetryWriteomitReadPreferencewriteConcernexplainreadConcerncollationmaxTimeMScommentretryWritesdbNameauthdbnoResponse
これらのオプションを
Db.command()メソッドに渡すことはできませんが、コマンド ドキュメントで設定できます。 詳細については、「 コマンドの実行 」ガイドの「コマンド オプション 」セクションを参照してください。
このリリースの詳細については、v6.0.0 リリースのハイライト を参照してください。
