次の新機能をご覧ください。
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_CHAIN
OpenSSL フラグを制御します。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-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
が起動するまでの時間を表します。
このリリースの詳細については GitHub の v6.9.0 リリースノートを参照してください。
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 応答をデコードするようになりました。
パッケージのGithubリリースには、NPMパッケージの
mongodb
分離された署名ファイル、mongodb-X.Y.Z.tgz.sig
が含まれるようになりました。この変更は、ドライバーのバージョン.x5 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リリースには、次の機能が含まれています。
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()
メソッドから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 シードリストに接続するときに、
SRV
TXT
レコードと レコードを並行してクエリすることで、初回接続レイテンシを軽減します。Kubernetes のクライアントまたは ハンドシェイク ドキュメントの
client.env.container
フィールドでコンテナ環境を実行する際に、コンテナ メタデータに追跡を追加します。サーバーによって返された元のエラードキュメントを
MongoServerError
ドキュメントのerrorResponse
フィールドに追加します。ドライバーでは使用されていない
CloseOptions
インターフェースを廃止します。
このリリースの詳細については、Github の v6.5.0 リリースのハイライト を参照してください。
6.4の新機能
Node.js ドライバー v 6.4リリースには、次の機能が含まれています。
複数の
mongos
インスタンスが利用可能な場合、読み取りと書込みの再試行で異なるサーバーが使用されます。認証ごとではなく、クライアントレベルでAmazon Web Servicesの認証情報をキャッシュします。
BSON6.4.0 を使用するようにアップグレードします。 BSON の新機能の詳細については、 BSON6.3.0 およびBSON..6 40のリリースノートを参照してください。
ExceededTimeLimit
エラーが発生した読み取り操作は再試行されます。mongosh 認証を可能にするために
saslContinue
コマンドの基本64パディングを修正します。ではなく
countDocuments
を使用して を入力するため、オートコンプリートが可能になり、下流の入力の問題を防ぐことができます。Filter<Schema>
Document
bulkWrite
コマンドの$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
と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.0Decimal128.fromStringWithRounding()
に更新して、 メソッドを公開します。詳細については、 v.6.1 0bson リリースノートを参照してください。認証とともに IAM AssumeRoleWithWebIdentityアクションを使用して認証するときに、リージョン設定の環境変数を検出します。リージョン
MONGODB-AWS
オプションを使用するようにドライバーに指示するには、次の環境変数の両方を設定する必要があります。AWS_STS_REGIONAL_ENDPOINTS
AWS_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
フィールドには、デフォルト以外のプール オプションである次のフィールドのみが含まれます。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 リリースのハイライト を参照してください。