Docs Menu
Docs Home
/ / /
Node.js

新機能

項目一覧

  • 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 の新機能

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

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

  • ドライバーは Node.js v20 をサポートするようになりました。

  • ドライバーは、 runCursorCommand()メソッドを呼び出すと、サーバーコマンドへの応答としてカーソルを返すことができます。 この機能について詳しくは、 runCursorCommand API ドキュメント を参照してください。

  • 時系列コレクション作成オプション bucketMaxSpanSeconds の指定をサポートするようになりました と bucketRoundingSeconds 。これらの時系列コレクション オプションの詳細については、サーバー マニュアルの「 時系列データの詳細な設定」を参照してください。

このリリースの詳細については、 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 以降にアップグレードする必要があります。

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 での重大な変更

  • Node.js ドライバーのバージョン 5.0 は、Node.js v12 またはそれ以前のバージョンと互換性がありません。 このバージョンのドライバーを使用する場合は、 Node.js v14.20.1 以降を使用する必要があります。

  • このリリースでは、Promise ベースの API が採用されるよう、コールバックのサポートが排除されます。 次のリストは、コールバック ユーザーがこのバージョンを採用するためのいくつかの戦略を示しています。

    • Promise ベースの API に移行する(推奨)

    • Promise ベースの API と util.callbackify

    • コールバックを引き続き使用するには、 mongodb-legacyを追加します

    これらの戦略の詳細について は、「 MongoDB Node.js ドライバー v の変更 」を参照してください。5

  • このリリースでは、 Collection.insert()Collection.update()Collection.remove()ヘルパー メソッドのサポートが削除されます。 次のリストでは、削除されたメソッドの機能を置き換える方法を示しています。

    • Collection.insert()からinsertOne()またはinsertMany()に移行します

    • Collection.update()からupdateOne()またはupdateMany()に移行します

    • Collection.remove()からdeleteOne()またはdeleteMany()に移行します

このバージョンで導入された重大な変更の完全なリストを表示するには、アップグレード ガイドの「重大な変更 」セクションを参照してください。

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 ドライバー リリースの新機能には、次のものが含まれます。

重要

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

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

  • ドライバーを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://username:password@<host><port>")
    // or
    new MongoClient(url, { auth: { username: "<>", 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 )の対話の短縮

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

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

戻る

クイック リファレンス