パッチ リリース
9.0.3 - 今後の予定
修正された問題:
SERVER-127745 高速ステップダウンとステップアップでの受信者サービスのデッドロックの再シャーディング
SERVER-131625 26サーバーのUbuntu.04 サポートを追加します。
SERVER-132638 カウントと制限0 は、ビューでは失敗しますが、コレクションでは機能します
SERVER-133518 では、古いメモリ内チャンク操作永続化された受信者の回復がブロックされる場合、ステップアップがハングする
SERVER-133988 リシャーディング初期化、チャンク移行のコミット、setFCV の間でデッドロックが発生する
9.0.2 - 9 月 28、2026
修正された問題:
SERVER-134970 featureFlagchangeStreamOptimizedUpdateLookup を無効化
SERVER-135099 IFR フラグ featureFlagchangeStreamReaderV を無効化2
SERVER-134533 movePrimary 中にシャードドレインを開始するとメタデータの不整合が発生する可能性があります
SERVER-134808 UTF-8 データベース名が正常に処理されない
9.0.1 - 9 月 28、2026
このリリースには、重要なセキュリティと信頼性の向上が含まれています。
修正された問題:
SERVER-134063 解析中にコレクションバリデーター 定数をシャーディングしました
9.0.0 - 9 月 28、2026
一般的な変更点
ストリームの変更前イメージ メトリクス
MongoDB9.0 以降、changeStreamPreImages.purgingJob.docsDeleted とchangeStreamPreImages.purgingJob.bytesDeleted serverStatus メトリクスで正確な値ではなく推定値が報告される場合があります。これらの推定値は、config.system.preimages コレクションでサイズとカウント情報が利用できない場合に発生します。詳細については、「 changeStreamPreImages 」を参照してください。
MongoDB9.0 には新しいchangeStreamPreImages.markerCreation serverStatusドキュメントも追加されています。このドキュメントでは、変更前イメージを排除するために使用される初期切り捨て情報を構築する、変更前イメージのサンプリング パスに関連するメトリクスを報告します。詳細については、「 changeStreamPreImages 」を参照してください。
マルチドキュメントトランザクションの制限
MongoDB9.0 以降、サーバーは外部クライアントに対して同時に開くことができるマルチドキュメントトランザクションの数を制限します。オープン トランザクションの数が パラメータで設定された制限(デフォルトはmaxConcurrentMultiDocumentTransactions )に達すると、サーバーは新しいマルチドキュメントトランザクションを拒否し、10000 TooManyOpenTransactionsエラーを返します。詳しくは、maxConcurrentMultiDocumentTransactions を参照してください。
操作ごとのメモリ制限
MongoDB9.0 以降、 MongoDB は1 回のクエリ操作で使用できるメモリの合計量を制限します。デフォルトでは 、制限は1 20ギガバイトまたはサーバープロセスで使用可能なメモリの % のいずれか大きい方です。ExceededMemoryLimit QueryExceededMemoryLimitNoDiskUseAllowedまたは では制限を超える操作は失敗します。以前のバージョンでは、操作は無制限の量のメモリを使用する可能性がありました。
100ステージあたり MB のメモリ制限と個々のステージのディスクへのスピル動作は変更されません。詳細については、「 操作ごとのメモリ制限 」を参照してください。
サーバーサイド JavaScript
MongoDB9.0 以降、サーバーサイドJavaScript関数($accumulator 、$function 、$where )は非推奨ではなくなりました。 MongoDB9 0{分離} . では、 JavaScript エンジンこれらの関数は以前にMongoDB.8 で非推奨となっていました。0
サーバーサイドJavaScript はppc64le アーキテクチャでは利用できません。詳しくは、 サーバーサイドJavaScript を参照してください。
サーバーの状態
MongoDB9.0 は、次のserverStatus メトリクスを追加します。
サーバー ステータス メトリクスの名前が変更されました
MongoDB9.0 は、shardingStatistics.databaseVersionUpdateCounters MongoDB で導入された ドキュメントの名前を8.3 shardingStatistics.databaseShardingMetadataStatisticsに変更します。 MongoDB9.0 は、名前が変更されたドキュメントのフィールドも新しいメトリクスのセットに置き換えられます。
MongoDB9.0 はmetrics.changeStreams.showExpandedEvents metrics.changeStreams.option.showExpandedEventsメトリクスの名前を に変更します。メトリクスを名前で監視する場合は、新しい名前を使用するように監視を更新してください。
新しいパラメーター
sessionCatalogPartitions Parameter
MongoDB9.0.1 には、セッション カタログ内のパーティション数を指定するsessionCatalogPartitions パラメーターが追加されています。セッションカタログをパーティション化すると、多数のセッションがある場合にロック競合が軽減されます。
シャーディング
checkMetadataConsistency 不一致のタイプ
MongoDB9.0 は、次のcheckMetadataConsistency 不整合タイプを追加します。
MongoDB 9.0 で ShardCatalogCacheCollectionMetadataMismatch 不整合タイプが削除されます。
checkMetadataConsistency チャンク チェックのしきい値
MongoDB9.0 は、 コマンドにperformStrictChunkChecksIfBelowThreshold checkMetadataConsistencyオプションを追加します。このオプションを使用して、シャードのチャンク比較にチャンク数のしきい値を設定します。しきい値を下回ると、コマンドは完全な比較を実行します。以上の場合、コマンドはより軽量なカウントのみの比較を実行します。詳細については、「 チャンク チェックのしきい値 」を参照してください。
コマンド応答内のカーソル名前空間
MongoDB 9.0 以降では、時系列コレクションで find、aggregate、または listIndexes コマンドを実行すると、レスポンスの cursor.nsフィールドは最初に対象としていたユーザー向けの名前空間を返します。以前のバージョンでは、サーバーは内部名前空間を返すことができました。
BSON検証
MongoDB9.0 では、net.wireObjectCheck 構成オプションと、それに対応する--objcheck および--noobjcheckand CLI 引数が非推奨になります。9.0 以降、 MongoDB はサーバーが取り込むすべてのBSONオブジェクトをデフォルトで検証します。サーバーが無効なBSONデータを受信した場合、 MongoDB はエラーを返します。
ドキュメントの検証
MongoDB9.0 constraintでは、 の新しいスキーマ検証レベルが導入されています。constraint 検証レベルでは、 MongoDB はすべてのドキュメントの挿入とアップデートに検証ルールを適用し、コレクション内のすべてのドキュメントがルールを満たすことを保証します。詳細については、「 制約の検証の指定 」を参照してください。
シャーディング メソッド
MongoDB9.0 では、次のmongosh メソッドが導入されています。
時系列
注意
9.0 にアップグレードすると、1 つのデータベースに 5,000 を超える時系列コレクションを持つクラスターでは更新に時間がかかり、書込みレイテンシが急増する可能性があります。この影響を軽減するには、不要な時系列コレクションを削除または削除します。
データ ストレージ
9.0 以降、 MongoDB は時系列コレクションを、バケットに圧縮された時系列データを含む単一の名前空間として保存します。時系列コレクションは、書き込み可能な非マテリアライズドビューではなくなりました。
renameCollection
MongoDB9.0 以降では、renameCollection を使用して時系列コレクションの名前を変更できます。
集計
$queryStats Output
MongoDB9.0 は、効率化されたメトリクス組織への$queryStats 出力を更新します。この更新には、次の新しい出力フィールドが含まれています。
フィールド | 説明 |
|---|---|
| カーソルとバッチプロトコルに関連するメトリクスを含むドキュメント |
| クエリの実行に関連するメトリクスを含むドキュメント |
| クエリ プランナーに関連するメトリクスを含むドキュメント |
| 操作書込み (write) に関連するメトリクスを含むドキュメント |
新しい出力構造の詳細については、「 $queryStats 出力 」を参照してください。
コマンド サポート
9.0以降、 MongoDB は 、 、update insertdeleteコマンドのクエリ統計を収集し、報告します。詳しくは、「 コマンド クエリ シェイプの更新 」、「 コマンド クエリ シェイプの挿入 」、「 コマンド クエリ シェイプの削除 」を参照してください。
クエリ統計がデフォルトで有効
MongoDB9.0 以降、$queryStats は読み取り操作と書込み操作の両方についてデフォルトで統計情報を収集します。 MongoDB は、すべての操作ではなく、操作のサンプルの統計情報を収集します。 MongoDB は、internalQueryStatsSampleRate internalQueryStatsWriteCmdSampleRateパラメーターによって設定されたレートで読み取り操作をサンプリングし、 パラメーターによって設定されたレートで書込み操作をサンプリングします。どちらのパラメータもデフォルトで0.01 になり、これが操作の1 % をサンプリングします。
$queryStatsはMongoDB がサンプリングした操作のみを報告するため、その出力は配置に対して実行された操作のサブセットを表します。
クエリ言語
コマンド フィールドとしてのクエリ設定
MongoDB 9.0 以降では、querySettingsドキュメントを次のコマンドに直接渡すことができます。
これらの設定は、 コマンドのその実行にのみ適用されます。 MongoDB はクラスターに設定を保存せず、同じクエリシェイプを持つ他のクエリに適用しません。
以前のバージョンでは、setQuerySettings コマンドでのみクエリ設定を設定できました。このコマンドはクラスターに設定を保存し、一致するクエリシェイプを持つすべてのクエリに適用します。
クエリシェイプにクラスター クエリ設定が保存されている場合、 MongoDB はそれらの設定を コマンドで渡す設定と組み合わせます。両方が同じフィールドを指定する場合は、保存されたクラスター設定が優先されます。
クエリ キー
バージョン9.0の新機能。
MongoDB9.0 以降では、 クエリ設定を使用して、単一のクエリシェイプの内部サーバーパラメータを上書きできます。 queryKnobsqueryKnobs設定には、機能の互換性バージョン(FCV)9.0 以降が必要です。
詳細については、「 クエリ ボックス 」を参照してください。
シェイプごと maxTimeMS
バージョン9.0の新機能。
MongoDB9.0 以降では、 コマンドを使用して、単一のクエリシェイプにmaxTimeMS 時間制限を設定できます。 setQuerySettingsmaxTimeMSクエリ設定には機能の互換性バージョン(FCV)9.0 以降が必要です。
詳細については、「 コマンドフィールド 」を参照してください。
ドット パスでの null 比較
MongoDB9.0 以降、null 以外の値に解決されないドット付きパスはnull として評価されます。新しい動作は、パス内のフィールドに空の配列、スカラー値の配列、またはネストされた配列を含む配列が含まれている場合に適用されます。null $eq$ne$in$nin、 、 、 、$gte 、$lte 演算子を使用する との比較は、新しいセマンティクスを反映します。 ステージの等価一致も新しいセマンティクスを反映しています。ドット$lookup パスを と比較するクエリでは、アップグレード後に異なる結果が返される可能性があります。詳細については、null 「 MongoDB. の互換性の変更9 」を参照してください。0
セキュリティ
Queryable Encryption のプレフィックス、サフィックス、サブストリング クエリの一般的なアベイラビリティー
MongoDB9.0 は、 Queryable Encryptionが有効なコレクションの暗号化された文字列フィールドに対するプレフィックス、サフィックス、サブストリング クエリの GA 版をマークします。詳細については、「 部分文字列クエリの有効化 」と「 サポートされている集計式 」を参照してください。
でプレフィックス、サフィックス、またはサブストリングmongosh 9クエリを使用するには、個別に自動暗号化共有ライブラリ.0 以降をダウンロードし、mongosh --cryptSharedlibPath オプションを使用して へのライブラリ パスを指定する必要があります。
useInternalAuthzForX509 Parameter
MongoDB9.0 は パラメータを追加します。useInternalAuthzForX509 trueに設定されている場合、MONGODB-X509 を使用して認証するクライアントは、LDAP認可が構成されていても 内部認可を使用します。詳細については、useInternalAuthzForX509 を参照してください。
usersInfo authenticatedMechanism フィールド
MongoDB9.0 はauthenticatedMechanism コマンドにusersInfo フィールドを追加します。この任意の stringフィールドは、ユーザー認可情報を検索するときにどの認可バックエンドusersInfo がクエリを実行するかを決定するための認証メカニズムを指定します。詳細については、usersInfo を参照してください。
mongocryptd 非推奨
MongoDB9.0 以降、mongocryptd は非推奨です。代わりに、自動暗号化共有ライブラリを使用してください。自動暗号化共有ライブラリはmongocryptd を置き換え、別のプロセスを開始する必要はありません。詳細については、「 CSFLE クエリ分析コンポーネントのインストールと構成 」および「 クエリ分析コンポーネントのインストールと構成 」を参照してください。
監査ログの改善
MongoDB9.0 は、directRemote スキーマのメッセージを監査するために フィールドを追加し、mongo direct_endpointOCSFスキーマのメッセージを監査するために フィールドを追加します。これらのフィールドは、PROXYプロトコルヘッダーがアサートするクライアントアドレスとは独立して、セッションのリテラル TCP ピアをレコード。詳細については、「 mongo スキーマ監査メッセージ 」と「 OCSF スキーマ監査メッセージ 」を参照してください。
複製
フェーズ トラッキングのための新しい replSetGetStatus メトリクス
MongoDB9.0 以降では、 論理的な最初の同期中にreplSetGetStatus コマンドを使用すると、次のメトリクスが利用できます。
の各ドキュメントでは、その試行に対する initialSyncAttemptsphase、 、nodeUptimeSecs も報告します。詳細については、phaseDurationsreplSetGetStatus.initialSyncStatus.initialSyncAttempts を参照してください。
診断
インデックス作成できないドキュメントの診断が改善されました
MongoDB9.0 以降、2 dsphere インデックスでキー抽出が失敗すると、インデックスなしのドキュメントを識別しやすくなる構造化診断が生成されます。
失敗した地理挿入とインデックスのビルドには、
failingPath、underlyingCode、underlyingReason、failingElementフィールドを含むwriteErrors[].errInfoドキュメントが含まれるようになりました。既存のフィールド名は変更されませんが、エラー理由文字列は 256 文字に制限されるようになりました。validate.errors地理キー抽出に失敗した場合の 出力は、境界のある自己完結型のメッセージを発行し、ドキュメントごとの完全な詳細を ログに書込むようになりました。同じインデックスとパスでの同一の障害は 1 つのメッセージに重複除外されるため、障害を特定のドキュメントにマッピングするには、mongod出力ではなくログを参照してください。ログリダクションが無効になっている場合にのみ、ドキュメントごとの完全な詳細がログに記録されます。詳細については、validatevalidateを参照してください。
変更ストリーム メトリクス
MongoDB9.0 以降、serverStatus は、mongod とmongos プロセスごとに次の変更ストリームカーソル メトリクスを報告します。
metrics.changeStreams.cursor.open.total、プロセス内で現在開いている変更ストリームカーソルの数(アイドル カーソルと固定されたカーソルを含む)。metrics.changeStreams.cursor.open.pinned、操作がアクティブに使用している開いている変更ストリームカーソルの数。metrics.changeStreams.cursor.totalOpened、その後閉じられたカーソルや、変更ストリームが再開したときに作成されたカーソルなど、プロセス内で開かれた変更ストリーム変更ストリームカーソルの累計数。metrics.changeStreams.cursor.lifespan、平均有効期限(マイクロ秒単位)、および プロセス内で閉じられた変更ストリームカーソルの合計数。
currentOpコマンドと ステージは、 oplog内の変更ストリームカーソルの現在の位置である も報告します。変更ストリームの詳細については、$currentOp currentOp.cursor.changeStreams.optime「 MongoDB Change Streams 」を参照してください。
既知の問題点
このセクションでは、MongoDB 9.0の既知の問題とその解決ステータスについて説明します。
バージョン | 問題 | ステータス |
|---|---|---|
9.0.0, 9.0.1, 9.02 | SERVER-:133518 前のステップダウン中に中断されたチャンク操作によって永続化された移行受信者の回復がブロックされた場合、シャードはステップアップ中にハングする可能性があります。ハングが発生すると、シャードはプライマリになることができなくなり、プライマリ読み込み設定 (read preference)を使用した書込みと読み取りがシャードで利用できなくなります。セカンダリは引き続き読み取りを処理できます。回復するには、ハングしたノードを再起動または強制終了して、別のセカンダリが書込み可能なプライマリになります。 | MongoDB 9.0.3 で修正されました。 |