新機能
項目一覧
次の新機能をご覧ください。
6.12の新機能
Node.js ドライバー v 6.12リリースには、次の機能が含まれています。
圧縮アルゴリズムの v のサポートを追加します。2.0
zstd
zstd
v2.0zstd
の詳細については、Github で リリースノート を参照してください。bson
パッケージを v6.10.1 6.10.1bson
にアップグレードします。このリリースの詳細については、Github で パッケージの v リリースノートを参照してください。ドライバーは、プライマリ レプリカセット ノードを古いとしてマークするときに、より具体的なエラーの種類とメッセージを
ServerDescription.error
フィールドに入力します。ドライバーは、 バッファモードではなくオブジェクトモードでストリームを使用してソケット データを読み取ります。これにより、不正確なデータ チャンクによって発生するまれにメッセージ解析エラーが発生するのを防ぎます。
ドライバーが socks5 プロキシに接続しているときにエラーを発生した場合、socks5 エラーを
MongoNetworkError
でラップしなくなりました。 これにより、ドライバーがMongoNetworkError
を別のMongoNetworkError
でラップすることがなくなります。
このリリースの詳細については、 v6.12.0 リリースノート を参照してくださいGithub .
6.11の新機能
Node.js ドライバー v 6.11リリースには、次の機能が含まれています。
Node.js v 22 のサポートを追加します。
クライアント側操作タイムアウト(COT)機能を追加します。 CSO を使用して、サーバーの選択、接続チェックアウト、直列化、サーバー側の実行など、 サーバー側の操作を完了するために必要なすべてのステップに単一のタイムアウトを適用できます。詳しくは、 「サーバー実行時間の制限」ガイドをご覧ください。
注意
試験用機能
COT 機能は実験的なものであり、今後のドライバー リリースで変更される可能性があります。
Kubernetes環境の OIDC認証サポートを追加します。この機能の詳細については、 エンタープライズ認証ガイドの「MONGODB-OIDC 」セクションを参照してください。
OIDC を使用してKubernetes環境から認証するには、接続文字列で
authMechanismProperties
接続オプションをENVIRONMENT:k8s
に設定します。この機能は、Amazon の Elastic Kubernetes Service、Google Kubernetes Engine、またはAzure Kubernetes Service で実行中環境に接続するときに使用できます。bson
パッケージはバイナリベクトルデータのサポートを追加します。この機能の詳細については、Github 6.10.0のbson
パッケージの v リリースノートを参照してください。ドライバーは
PoolClearedEvents
の後にConnectionClosedEvents
を発行します。
このリリースの詳細については、 v6.11.0 リリースノート を参照してくださいGithub .
6.10の新機能
Node.jsドライバー v 6.10 リリースは、すべてのMongoDB Server 8.0 機能をサポートする最初の公式リリースであり、次の改善と修正が含まれています。
MongoDB Server 3.6 のサポートを廃止します。
MongoDB Server 8.0 一括書き込みAPIのサポートを追加します。この API は、1 回の呼び出しで複数のデータベースとコレクションにわたる一括書き込み操作をサポートします。
.
文字で区切られた部分を持つ 3 つ未満の SRV ホスト名を許可します。例、ドライバーはmongodb+srv://mongodb.local
などのホスト名をサポートするようになりました。optime を記述するためのCRUDコマンドの正確な
maxTimeMS
値を取得するためのCRUD optimeexplain オプションをサポートします。検索操作と集計操作の explain オプションは非推奨です。
このリリースの詳細については、 v6.10.0 リリースノート を参照してくださいGithub .
6.9の新機能
MongoDB Server 3.6のサポートは非推奨であり、今後のドライバー リリースで削除される予定です。
ドライバーは、カーソルと
MongoClient
、ClientSession
、および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 フラグを制御します。ConnectionCheckedOutEvent
とConnectionCheckFailedEvent
にdurationMS
プロパティが含まれるようになりました。 このプロパティは、接続チェックアウト操作の開始と終了までの経過時間を示します。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
プロパティは、BSON
Binary
のAutoEncryptionOptions
インスタンスを受け入れます。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 .
6.8の新機能
Node.js ドライバー v 6.8リリースには、次の機能が含まれています。
ローカルKMSプロバイダーは実行時に
BSON Binary
インスタンスを受け入れましたが、 TypescriptコンパイラーはBuffer
とstring
のタイプの値のみを許可するバグを修正しました。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 .
6.7の新機能
Node.js ドライバー v 6.7リリースには、次の機能が含まれています。
MongoDB Server v 7.0以降に接続する際に
MONGODB-OIDC
認証メカニズムのサポートを追加します。 このドライバーは、Azure マシン認証、GCP マシン認証、コールバック認証、人間によるコールバック認証ファセットによる認証をサポートしています。useBigInt64
フラグをtrue
に設定すると内部compareTopologyVersion
関数がエラーを生成する問題を修正します。
このリリースの詳細については、 v6.7.0 リリースノート を参照してくださいGithub .
6.6の新機能
Node.js ドライバー v 6.6リリースには、次の機能が含まれています。
BSON 6.7.0を使用するようにアップグレードします。 BSON の新機能の詳細については、 BSON6.5.0 のリリースノートを参照してください。 、BSON6 。6 。0 、BSON6 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()
メソッドから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
フィールドの定義を終了しました。
このリリースの詳細については、 v6.6.0 リリースのハイライト Githubを参照してください。 .
6.5の新機能
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を参照してください。 .
6.4の新機能
Node.js ドライバー v 6.4リリースには、次の機能が含まれています。
複数の
mongos
インスタンスが利用可能な場合、読み取りと書込みの再試行で異なるサーバーが使用されます。認証ごとではなく、クライアントレベルでAmazon Web Servicesの認証情報をキャッシュします。
BSON 6.4.0を使用するようにアップグレードします。 BSON の新機能の詳細については、 BSON6.3.0 のリリースノートを参照してください。 BSON6 と4 。0 。
ExceededTimeLimit
エラーが発生した読み取り操作は再試行されます。mongosh 認証を可能にするために
saslContinue
コマンドの基本64パディングを修正します。ではなく
countDocuments
を使用して を入力するため、オートコンプリートが可能になり、下流の入力の問題を防ぐことができます。Filter<Schema>
Document
bulkWrite
コマンドの$addToSet
オプションの型エラーを修正します。 ドライバーは、Document
またはany
から型を拡張したり、任意の型のプロパティを使用したりする場合に、$addToSet
検証をスキップします。ソケットを作成する時間が含まれないように、
ServerHeartbeatSucceeded
とServerHeartbeatFailed
イベントのハートビート期間を修正します。カーソル変換ストリームからのエラーを受信するのではなく、適切にエラーを出力します。
ユーザー名とパスワードが提供されている場合にAmazon Web Servicesセッション トークンを任意にし、 Amazon Web Services SDK が認証リクエストを処理できるようにします。
このリリースの詳細については、 v6.4.0 リリースのハイライト Githubを参照してください。 .
6.3 で追加される機能
Node.js ドライバー v6.3 リリースには、次の機能が含まれています。
トポロジー内のノード間のモニタリング接続の動作を制御するために
serverMonitoringMode
クライアント オプションを追加します。 このオプションには、auto
(デフォルト)、poll
、またはstream
の値が指定されます。 詳細については、接続オプションガイドのこのオプションに関するエントリを参照してください。serverMonitoringMode
オプションは、MongoClientOptions
インスタンス内で、または接続stringオプションとして設定できます。 次の例は、 オプションをstream
に設定してクライアントを作成する方法を示しています。new MongoClient('<connection string>', { serverMonitoringMode: 'stream' }); serverApi
クライアント オプションが設定されている場合の接続リークを修正します。contentType
とaliases
GridFS オプションを廃止します。contentType
aliases
ファイルのコンテンツタイプとエイリアスを保存するには、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 .0BSON リリースノート を参照してください。MONGODB-AWS
認証メカニズムを使用して認証するときに、リージョン設定の環境変数を検出します。 リージョン オプションを使用するようにドライバーに指示するには、次の環境変数の両方を設定する必要があります。AWS_STS_REGIONAL_ENDPOINTS
AWS_REGION
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
フィールドには、デフォルト以外のプール オプションである次のフィールドのみが含まれます。maxConnecting
maxPoolSize
minPoolSize
maxIdleTimeMS
waitQueueTimeoutMS
ドライバーは、 インスタンスを作成したときではなく、 メソッドを呼び出したときに、
tlsCAFile
tlsCertificateKeyFile
接続オプションとMongoClient.connect()
MongoClient
接続オプションで設定されているファイルを非同期に読み取ります。keepAlive
とkeepAliveInitialDelay
接続オプションを削除します。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 リリースのハイライトを参照してください。