このページでは、 MongoDB 8.0で導入された変更点と新機能について説明します。
MongoDB 8.0はメジャー リリースであるため、 MongoDB Atlasとオンプレミスの配置の両方でサポートされます。 MongoDB 8.0にはMongoDB Rapid Releases 7.1 、 7.2 、 7.3で導入された変更が含まれています。 このページでは、これらの Rapid Release とMongoDB 8で導入された変更について説明します。 0 。
MongoDB Atlas は、Latest Release (auto-upgrades) オプションが有効になっている場合、専有クラスター(M10+)のメジャー バージョンへの自動アップグレードを実行します。MongoDB Atlasを手動でアップグレードする場合は、クラスターを新しいMongoDBバージョンにアップグレードするを参照してください。Atlas のMongoDBクラスターのバージョンについて詳しくは、Atlas クラスターが使用するMongoDBのバージョンを参照してください。
メジャー リリースと Rapid Release の違いの詳細については、「 MongoDB のバージョン管理 」を参照してください。
警告
過去のリリース制限
以下の 重要な助言 は、一部の MongoDB の前のバージョンに影響します。 配置が重要な助言によって影響を受ける機能に依存している場合は、利用可能な最新のパッチ リリースにアップグレードしてください。
問題 | 影響を受けるバージョン |
|---|---|
8.0.0 - 8.0.3 | |
8.0.0 - 8.0.3 |
パッチ リリース
8.0.17 - Dec 19 、 2025
重要
MongoDB 8.0.17には CVE-2025-14847 に対する修正が含まれています。
MongoDBセキュリティ更新の最新情報については、MongoDBセキュリティ更新を参照してください。
修正された問題:
サーバー-115508: 非圧縮メッセージ用に最小サイズのバッファを作成します
8.0.16 - 11 月19 、 2025
修正された問題:
サーバー-82688: 接続数が WiredTiger の
session_max制限を超えた場合にmongodがクラッシュするバグを修正しますサーバー-95374:和集合またはクエリ計画中に複合ワイルドカード インデックスが述語を誤ってプッシュダウンする問題を解決します
サーバー-103960: フィールドパスに適切な検証チェックを実装して、部分数が
255を超えないようにしますサーバー-108565: 時系列コレクションへの過大な書き込みの処理を改善します。
SERVER-112467: 保留中のプロキシ接続数の追跡とレポート作成を改善します
サーバー-112520: 時系列コレクションの既存のバケットにドキュメントを挿入するときに、インデックスへの書き込みが失敗する問題を修正します
WT-9575: 最も古いトランザクションIDよりも新しい更新を含むページがエビクションのキューに入れられない問題を修正しました
WT-15225: 新しく作成されたテーブルと
drop()操作のEBUSYの問題を修正しました
8.0.15 - 10 月2 、 2025
重要
MongoDBサーバークエリ プランナーで を使用した後に変更すると、クラッシュや未定義の動作が発生する可能性があります。
説明: 承認されたユーザーは、バッファのオーバー読み取りを発生させてMongoDBサーバーをクラッシュさせる可能性があります。これは、クエリの実行中にDDL操作を実行する場合に発生する可能性があります。
CVSS スコア: 5.3
CWE: 416 の使用後に無料で使用
影響を受ける製品のバージョン: MongoDB Server 8.2.0、8.0.14 から 8.0、7.0.24 から 7.0、およびそれ以前のサポート終了が近づいているメジャー バージョン。
修正された問題:
サーバー-105873: QueryPlannerParms は Index ArchiveEntry が所有するポインターを維持しないでください
8.0.14 - 9 月25 、 2025
修正された問題:
SERVER-100448 : コマンド登録は、スタートアップに FCV に依存すべきではありません
SERVER-103742 : opWriteConcernCounters は NUL バイトを ServerStatus に不正に埋め込むことができます
SERVER-103841 : 長時間キャンセル ソースに関連付けられた TransactionCoordinator のメモリ リーク
SERVER-105478 : secondaryDelaySecs を使用して、適格な oplog エントリと適格でないoplogエントリを分離します
WT-14140 : スイープされていないアクティブな "ファイル:" ダンプファイルに対して取得された不要なスキーマロック
WT-14653 : HS アップデートを追跡するために、調整にログと統計情報を追加します
8.0.13 - Aug 21, 2025
修正された問題:
SERVER-77172 :
abortExpiredTransactionsスレッドがセッションのチェックアウトに失敗すると、停止する可能性がありますSERVER-82180 : プライマリでの Capped 挿入はセカンダリとは異なる自然な順序付けになる可能性があります
SERVER-91686 : 現在のスレッドのコマンドオブジェクトを出力するように
mongodシグナル ハンドラーを改善しましたSERVER-94315 : 照合を伴うシャード フィルタリングのバグ
SERVER-102670 : 順序付き時系列挿入エラーの処理が正しくありません
SERVER-107361 :バケットカタログでのロールオーバーの決定が、大規模な測定値の混合スキーマのチェックに失敗する可能性があります
8.0.12 - 7 月 23、2025
重要
CVE-2025-10061 により、8.0.12 以前のMongoDB 8.0 では、承認されたユーザーが特別に作成された $group クエリを介してMongoDB Serverをクラッシュさせる可能性があります。この脆弱性は、 $group操作内で追加のパラメータが指定されている場合に、特定のアキュムレータ関数の誤った処理に関連しています。この脆弱性は、繰り返しトリガーされると、サービスを拒否する可能性があります。
この問題は、次のMongoDB Serverバージョンに影響します。
8.1.0 - 8.1.1
8.0.0 - 8.0.11
7.0.0 - 7.0.21
6.0.0 - 6.0.24
CVSS スコア: 6.5
CWE: CWE-20 不適切な入力検証
修正された問題:
SERVER-95523 : アップサートが DuplicateKey の再試行を正しく処理しない
SERVER-95524 : マルチドキュメントトランザクションでのアップサートの重複キー エラーでの再試行を回避します
SERVER-97368 : 1970 より前のデータを含む時系列コレクションに対して TTL 削除を有効にします
SERVER-99342 : スループット プロファイリングの減少メトリクスは更新されません
サーバー-99616 $group は MONGO_verify に達します
WT-14391 : HS を開く前に、エビクションサーバーが実行中いることを確認します
8.0.11 - Jun 30, 2025
修正された問題:
SERVER-105375 : elemMatch 内の typesFalse 式の EOF プランを使用
SERVER-106614 : 8 より前に追加されたシャードで更新されなかった config.shards エントリ内のレプリカセットホストのリスト。0
8.0.10 - Jun 04, 2025
重要
不正な KMIP 応答により読み取りアクセス違反が発生する可能性があります
CVE-2025-12657 により、8.0.10 以前のMongoDB 8.0 では、mongo バイナリにビルドされた KMIP 応答パーサーが、特定の不正パケットに対して過剰に許容され、無効なオブジェクトに解析される可能性があります。このオブジェクトを後で読み取ると、読み取りアクセス違反が発生する可能性があります。
この問題は、次のMongoDB Serverバージョンに影響します。
8.0.0 - 8.0.9
7.0.0 - 7.0.21
CVSS スコア: 5.9
CWE: CWE-754: 非推奨または例外条件の不適切なチェック
修正された問題:
サーバー-101230: 埋め込み分析の障害 155126: 無効なイテレータを使用している
SERVER-90495 :自然な順序スキャンで削除されたレコード ID からの開始または再開をサポートします
SERVER-92806 : プランキャッシュエントリが $elemMatch とのインデックス照合を無視する
SERVER-96197 : ExpressionContext の _resolvedNamespaces では、異なる DB にある同じ名前のコレクションを区別できません
SERVER-100785 : 不正な reshardCollection コマンド発行後のMongoDBコンフィギュレーションサーバーの致命的なクラッシュ
WT-13216 : 圧縮コマンドのキャッシュエビクション チェックの使用を評価します
8.0.9 - 5 月1 、 2025
重要
不完全なデータの誤処理により mongos が新しい接続を受け入れなくなる可能性があることを修正しました
CVE-2025-6714 により、8.0.9 以前のMongoDB 8.0 では、MongoDB Server の mongos コンポーネントは、不完全なデータの誤った処理が原因で、新しい接続を応答しなくなる可能性があります。この問題は、指定されたポートで HAProxy を使用し、mongos のロードバランサーサポートで構成されているシャーディングされたMongoDBクラスターに影響します。
この問題は、次のMongoDB Serverバージョンに影響します。
8.0.0 - 8.0.8
7.0.0 - 7.0.19
6.0.0 - 6.0.22
CVSS スコア: 7.5
CWE : CWE-834 過剰な反復処理 および CWE-400 非制御リソース消費
修正された問題:
SERVER-92236 : チャンクの移行では短時間のキャンセル ソースを使用する必要があります
SERVER-106753 : 不完全なデータの不適切な処理により、
mongosが新しい接続を受け入れなくなる可能性があります
8.0.8 - Apr 14, 2025
修正された問題:
SERVER-103328 double 型のゼロ以外の RLE 後にスキップの BSONCluster 処理が正しくありません
8.0.7 - Apr 14, 2025
重要
MongoDB Server は$mergeCursors ステージにより特権昇格の影響を受けやすい可能性があります。
CVE-2025-6713 により、8.0.7 以前のMongoDB 8.0 では、権限のないユーザーが特別に作成された集計パイプラインを活用して、適切な認可なしでデータにアクセスする可能性があります。これは、次の$mergeCursorsステージの不適切な処理によるものです。 MongoDB Server.これにより、追加の認可なしでデータにアクセスする可能性があります。
この問題は、次のMongoDB Serverバージョンに影響します。
8.0.0 - 8.0.6
7.0.0 - 7.0.18
6.0.0 - 6.0.21
CVSS スコア: 7.7
CWE : CWE-285: 不適切な認可
修正された問題:
SERVER-106752 MongoDB Server は
$mergeCursorsステージにより特権昇格の影響を受けやすい可能性があります
8.0.6 - 3月は19と2025
修正された問題:
SERVER-87442 プラットフォームのサポート: MacOS 14 Sonoma のサポートを追加しました(ARM64 と AMD64)
SERVER-89757 checkpointSbeStatus はすべてのノードをチェックします
SERVER-97911 「空の配列に_id」を含むクエリは、_idインデックスをヒントとして指定すると、完全なコレクションを走査します
SERVER-100901 ShardingTaskExecutor で tassert に対するユーザー ダイジェストの不変を緩和します
SERVER-101838 Revert SERVER-93101 + SERVER-91121
8.0.5 - Feb 20, 2025
重要
MongoDBサーバーの OIDC 認証におけるサービス脆弱性の事前認証拒否
CVE-2025-6709 により、8.0.5 以前のMongoDB 8.0 では、MongoDB Server は、 OIDC認証を使用する場合にJSON入力内の特定の日付値の処理が不適切であるため、サービス拒否の脆弱性の影響を受けます。これは、mongo シェルを使用して再現でき、悪意のあるJSONペイロードを送信し、不均等な障害とサーバーのクラッシュを引き起こす可能性があります。
この問題は、次のMongoDB Serverバージョンに影響します。
8.0.0 - 8.0.4
7.0.0 - 7.0.16
同じ問題はMongoDB Server v6.0 にも影響しますが、攻撃者は認証後にのみサービスの拒否を発生させることができます。この問題は、次のMongoDB Serverバージョンに影響します。
6.0.0 - 6.0.20
CVSS スコア: 7.5
CWE : CWE-20: 不適切な入力検証
重要
MongoDBの過剰再帰によるJSON解析のサービスStack Overflow脆弱性の事前認証拒否
CVE-2025-6710 により、8.0.5 以前のMongoDB 8.0 では、MongoDB Server はJSON解析メカニズムにより、Stack Overflowの影響を受ける可能性があります。特別に作成されたJSON入力では、警告なしのレベルの再帰が発生し、スタック領域が過剰に消費される可能性があります。 このような入力はStack Overflowが発生し、サーバーがクラッシュして事前認証が発生する可能性があります。
この問題は、次のMongoDB Serverバージョンに影響します。
8.0.0 - 8.0.4
7.0.0 - 7.0.16
同じ問題はMongoDB Server v6.0 にも影響しますが、攻撃者は認証後にのみサービスの拒否を発生させることができます。この問題は、次のMongoDB Serverバージョンに影響します。
6.0.0 - 6.0.20
CVSS スコア: 7.5
CWE: CWE-674: 非制御再帰
修正された問題:
SERVER-51366 インストーラーによって作成されたフォルダーを構成する
SERVER-93497 ユーザーキャッシュの無効化を OpObserver から onCommit ハンドラーに移動
SERVER-95672 サブ配列を含む配列フィールドのインデックスには、一部の結果は含まれません
SERVER-97044 ゾーンシャーディングを使用している または であるコレクションの再シャーディングまたはシャーディング中に、変更ストリームが "drop"イベントを誤って出力する問題を修正します
SERVER-97860 Expressパスは、一意のマルチフィールドインデックスをスキャンするときに誤った結果を返す可能性があります
SERVER-99290 時系列バケットコレクションが無効な場合、FCV 8 の完了を妨げます。0アップグレード
SERVER-99345 FCV 8 で「timeseries」オプションなしの時系列バケットコレクションのシャーディング/移動を行いません。0+
SERVER-106748 OIDC認証を受け入れる場合のサービスの事前認証拒否
SERVER-106749 MongoDBの過剰再帰によるJSON解析でのサービスStack Overflow脆弱性の事前認証拒否
WT-12846 compact Archive がチェックポイントフラッシュ_ロックから EBUSY を処理する方法を修正しました
8.0.4 - Dec 9 、 2024
SERVER-73641 時系列フィルタリングでは、シャーディングされている場合に拡張範囲イベントが除外される可能性があります
SERVER-82037 ソーターのスピルで使用されるメモリは、無制限に増加する可能性があります
SERVER-94559 時系列測定の削除によりバケットの minTime が更新されます
SERVER-95067 時系列挿入により、同じバケットを参照する複数のバッチを生成できます
SERVER-95724 ReshardingOplogSession Application が、admin.$cmd で再試行可能な applyOps セッション情報を複製しますas orderedNamespace
8.0.3 - 10 月24 、 2024
重要
null バイトの不適切な中性化により、 MongoDB Serverでバッファのオーバー読み取りが発生する可能性があります
MongoDB 8.0 および 8.0.1 では、承認されたユーザーは、 MongoDB Serverで不正なBSON を構築する特別に作成されたリクエストを発行することで、クラッシュをトリガーしたり、サーバー メモリのバッファ オーバー読み取りの内容を受信したりする可能性があります。
この問題は、 MongoDB Server のバージョンに影響します。
5.0.0 - 5.0.29
6.0.0 - 6.0.18
7.0.0 - 7.0.14
8.0.0 - 8.0.1
修正された問題:
SERVER-96419 null バイトの不適切な中性化により、 MongoDB Serverでバッファの過剰な読み取りが発生する可能性があります
8.0.1 - 10 月9 、 2024
修正された問題:
SERVER-76883 外部ソースユーザーの「ロールが存在しません」ログのチャットボットを削減
SERVER-82221 listCollections と listIndexes にはコミット保留中の名前空間が含まれます
SERVER-94635 セッション更新パラメータを構成可能にします
SERVER-95244 の挿入につながるアップサートのステートメントは、クライアントがシャードに直接接続している場合、tassert 9146500 で失敗する可能性があります
WT-13409 __txn_checkpoint の 1 反復が処理されない
8.0.0 - 10 月2 、 2024
このページの残りの部分では、 MongoDB 8.0で導入された変更点と新機能について説明します。
パフォーマンスの向上
MongoDB 8.0 では、 MongoDB 7.0 からのパフォーマンスの大幅な向上が導入されています。これには次のようなものがありますが、これらに限定されません。
読み取りスループットが最大 36% 向上 します。
一般的なウェブ アプリケーションのパフォーマンスが最大 32% 向上。
レプリケーション中の同時書込みを最大 20% まで高速化します。
注意
パフォーマンス向上の量は、ワークロードとデータベースインスタンスの構成によって異なる場合があります。
新しい一括書込みコマンド
MongoDB 8.0以降では、新しいbulkWriteコマンドを使用して、1 回のリクエストで複数のコレクションに対して多くの挿入、アップデート、削除操作を実行できます。 既存のdb.collection.bulkWrite()メソッドでは、1 回のリクエストで 1 つのコレクションのみを変更できます。
bulkWrite MongoDB 8.0 での 操作は、 MongoDB 7.0 での一括書込み操作よりも最大 56% 速く実行できます
時系列ブロック処理
バージョン8.0以降、 MongoDB は、ブロック処理を使用して特定の時系列クエリを実行する場合があります。 このパフォーマンス向上により、クエリは個々の値ではなく、データの「ブロック」単位で処理されます。 ブロック処理 により、時系列コレクションを操作する際のクエリ実行速度とスループットが向上します。
MongoDB 7.0 またはそれ以前のバージョンで実行される時系列クエリと比較すると、MongoDB 8.0 の時系列データのブロック処理は、より多くのデータを処理し、スループットを向上させる可能性があります。場合によっては、$group 操作および分析クエリで 200% 以上向上することがあります。
時系列クエリがブロック処理を使用しているかどうかを確認するには、説明プランの出力のexplain.queryPlanner.winningPlan.slotBasedPlan.stagesフィールドを確認します。
詳しくは、「ブロック処理 」を参照してください。
プラットフォーム サポートの更新
MongoDB 8.0以降、新しい MongoDB Server バージョン(メジャーとマイナー)は、OS ベンダーによって定義される最小のオペレーティング システム(OS)のマイナー バージョンをサポートします。 OS マイナー バージョンが OS ベンダーによってサポートされなくなると、MongoDB は MongoDB Server を更新して次の OS マイナー バージョンをサポートします。 詳細については、「 MongoDB Platform サポートの改善」を参照してください。
MongoDB 8.0は、最小の OS マイナー バージョンをサポートしています。
Red Hat Enterprise Linux 8.8
Red Hat Enterprise Linux 9.3
SUSE Linux Enterprise Server 15 SP 5
Amazon Linux 2023バージョン2023.3
ログ記録
MongoDB 8.0以降では、操作の合計レイテンシではなく、MongoDB がその操作に費やした時間に基づいて、低速操作をログに記録するようにデータベースプロファイラーを構成できます。 つまり、ロックの待機やフロー制御などの要因は、操作が 低速操作しきい値 を超えるかどうかに影響しません。
この変更により、ログ記録とクエリ分析が次の改善が行われます。
低速クエリは、MongoDB がクエリの処理に費やす時間に基づいて、より正確にログに記録されます。
クエリプロファイラー、 Performance Advisor 、検索クエリ テレメトリなどのクエリ分析ツールでは、
durationMillisではなくworkingMillisに基づいて低速操作が報告されます。 この変更により、問題のあるクエリのより正確なビューが提供されます。低速クエリ ログには、実行チケットのキューに入れられた時間のメトリクスが含まれます(
queues.execution.totalTimeQueuedMicros。 このメトリクスは、操作が完了までにかかる時間や操作の開始待機に費やされているかを特定するのに役立ちます。
詳細については、db.setProfilingLevel() を参照してください。
Database Profiler
データベースプロファイラーにフィルターを指定すると、新しいworkingMillisメトリクスに基づいて操作をログに記録できます。 workingMillisとdurationMillisの両方に基づいて操作をログに記録し、各メトリクスを異なるしきい値に設定できます。
集計
BinData 変換
MongoDB 8.0以降では、 $convert演算子を使用して次の変換を実行できます。
String values to binData values
binData 値から string 値へ
MongoDB 8.0には新しいヘルパー式$toUUID } も含まれています。これは、string を UUID値に変換するための簡素化された構文を提供します。
$queryStats
MongoDB 7.1以降、 $queryStatsステージは記録されたクエリの統計を返します。
変更ストリームの改善
MongoDB 8.0以降、 $queryStatsは変更ストリームの追跡とレポート作成メトリクスを改善します。 詳細については、「 $queryStats Change Streamsの動作 」を参照してください。
$rank と $denseRank の動作
MongoDB 8.0以降、 $denseRankおよび$rank sortBy操作のnullと欠落しているフィールド値は、ランキングを計算するときに同じように扱われます。 この変更により、 denseRankとrankの動作が$sortと一貫性が生じます。
セキュリティ
Queryable Encryption 範囲クエリ
MongoDB 8.0以降、 Queryable Encryptionは、 $lt 、 $lte 、 $gt 、および$gte演算子を使用した、暗号化されたフィールドに対する範囲クエリをサポートしています。 詳細については、「 Queryable Encryption がサポートする操作 」を参照してください。 暗号化されたフィールドで範囲クエリを有効にするには、「暗号化スキーマの作成 」を参照してください。
ログ メッセージの OCSF スキーマ
MongoDB 8.0以降では、監査ログ メッセージにOCSFスキーマを指定できます。 OCSF スキーマは、 ログ プロセッサ と互換性のある標準化された形式でログを提供します。
ログ メッセージに使用されるスキーマを設定するには、 auditLog.schema構成ファイル オプションを使用します。
OCSF 形式のログ メッセージの例については、「 OCSF スキーマ監査メッセージ 」を参照してください。
Ingress キュー
MongoDB 8.0 では、Ingress 認証制御用の新しいキューが導入されています。ネットワークからデータベースへのエントリがあるのを待つ操作は、Ingress キューに入力されます。デフォルトでは、キューは制限されていません。つまり、 MongoDBではすべての操作がこのステージでキューに入れられることなく実行できます。キューの最大値を特定の値に設定すると、同時操作の数が指定された制限に達した場合、このステージで操作をキューに持つことができます。
シャーディング
MongoDB 8.0 以降では、コレクションのシャーディングを解除し、シャーディングされたクラスター上のシャード間でシャーディングされていないコレクションをシャード間で移動できます。
コレクションの移動
MongoDB 8.0以降では、 moveCollectionコマンドを使用して、シャーディングされていないコレクションを別のシャードに移動できます。
詳細については、「移動可能なコレクション 」を参照してください。 開始するには、「コレクションの移動 」を参照してください。
Change Streamsを持つコレクションの移動
MongoDB8.0 以降、movePrimary は 変更ストリーム を持つイベント コレクションを無効化しません。コレクションが新しいシャードに移動された後も、変更ストリームはコレクションからイベントを引き続き読み取ります。
詳細については、Change Streamsをご覧ください。
コレクションのシャーディングの解除
MongoDB 8.0以降では、 unshardCollectionコマンドまたはsh.unshardCollection()メソッドを使用して、既存のシャーディングされたコレクションのシャーディングを解除できます。 この操作は、 コレクション内のすべてのドキュメントを、指定されたシャードまたはデータ量が最も少ないシャードに移動します。
時系列コレクションの再シャーディング
MongoDB 8.0.10 以降、時系列コレクションを再シャーディング できます。時系列コレクション内のすべてのシャードは、リシャードするにはバージョン 8.0.10 以降を実行する必要があります。
詳細については、「シャーディングされていないコレクション 」を参照してください。 開始するには、「コレクションのシャーディングの解除 」を参照してください。
コンフィギュレーションシャード
MongoDB 8.0以降では、通常の シャーディングされたシャーディングされたクラスターのメタデータデータ に加えて、アプリケーションデータを保存するようにコンフィギュレーションコンフィギュレーションサーバーを構成できます。 コンフィギュレーションコンフィギュレーションサーバーとシャードサーバーの両方の機能を提供するmongodノードは、コンフィギュレーションシャードと呼ばれます。 シャードサーバー機能を持たないスタンドアロン--configsvrとして実行されるmongodノードは専用コンフィギュレーションサーバーと呼ばれコンフィギュレーションサーバー。
専用のコンフィギュレーションコンフィギュレーションサーバーをコンフィギュレーションシャードとして実行するように構成するには、 transitionFromDedicatedConfigServerコマンドを実行します。
コンフィギュレーションシャードを専用のコンフィギュレーションコンフィギュレーションサーバーとして実行するように構成するには、 transitionToDedicatedConfigServerコマンドを実行します。
詳細については、「 コンフィギュレーションシャード 」を参照してください。開始するには、「 コンフィギュレーションシャードを使用してシャーディングされたシャードクラスタを開始する 」を参照してください。コンフィギュレーションシャードを使用してレプリカセットをシャーディングされたシャーディングされたクラスターに変換するには、「 埋め込みコンフィギュレーションサーバーを使用してシャーディングされたシャードクラスタにレプリカセットを変換 」を参照してください。
新しいデータベースコマンド
新しい mongosh メソッド
serverStatus メトリクス
MongoDB 8.0以降、 serverStatusの出力には次の新しいshardingStatisticsフィールドが含まれます。
shardingStatistics.countTransitionToDedicatedConfigServerStartedshardingStatistics.countTransitionToDedicatedConfigServerCompletedshardingStatistics.countTransitionFromDedicatedConfigServerCompleted
MongoDB 7.1には、チャンク移行に関する次の新しいシャーディング統計が含まれています。
シャードあたりのデフォルトのチャンク
MongoDB 7.2 以降では、空のコレクションをハッシュされたシャードキーでシャードすると、 操作によってデフォルトでシャードごとに 1 つのチャンクが作成されます。 Previously, the operation created two chunks by default.
directShardOperations ロール
MongoDB 8.0以降では、 directShardOperationsロールを使用して、シャードに対してコマンドを直接実行する必要があるメンテナンス操作を実行できます。
警告
directShardOperationsロールを使用して コマンドを実行すると、クラスターが正しく動作しなくなり、データが破損する可能性があります。 directShardOperationsロールは、メンテナンス目的で、または MongoDB サポートのガイダンスに必ず従う必要があります。 メンテナンス操作を実行したら、 directShardOperationsロールの使用を停止します。
dbhash シャードクラスタ内のノードで直接 を実行可能
MongoDB 8.0.5 以降、dbHash をシャードで直接実行することができます。ノード直接コマンドの完全なリストについては、シャーディングされたノード直接コマンドを参照してください。
シャーディングされたクラスターで有効になっているカーソルをすべて使用する
MongoDB7.1 以降、クライアントのmongos getMore リクエストで exhaustAllowed フラグが設定されている場合、 はエグゼキューションカーソルをサポートします。これにより、クライアントが 1 つのリクエストに対してデータベース サーバーから複数の応答を受け取った場合に、シャーディングされたクラスターでのクエリのパフォーマンスが向上します。
mongos ポート範囲
MongoDB 7.1以降、 mongosは [ 0 、 65535 ] から--port値を受け入れます。 詳しくは、 --portを参照してください。
部分的なシャードキーを含むクエリ
MongoDB 7.1以降では、 findAndModifyとdeleteOne()は部分的なシャードキーを使用してシャーディングされたコレクションをクエリできます。
再シャーディングの改善
MongoDB 8.0 では、再シャーディング操作のパフォーマンスが大幅に向上し、操作の実行時間が大幅に短縮されます。
さらに、アプリケーションとクラスターが 必要な要件と制限を満たしている場合は、 reshardCollectionコマンドを使用して同じキーでコレクションを再シャーディングし、コレクションを再配布できます。これは、別の範囲移行手順 よりもはるかに高速です。
次のオプションが コマンドに追加されます。
フィールド | 説明 |
|---|---|
| 同じキーの再シャーディング を有効にします。 |
例については、「新しいシャードへのデータの再配布 」を参照してください。
シャーディングされたクラスターの自己管理型バックアップ
MongoDB 7.1以降では、 fsync } コマンドとfsyncUnlockコマンドは、シャーディングされたクラスターで fsync 操作を実行できます。
lockフィールドをtrueに設定してmongosで実行すると、 fsyncコマンドはストレージ層からディスクに書き込みをフラッシュし、各シャードをロックして追加の書込みを防ぎます。 その後、 fsyncUnlockコマンドを使用してクラスターのロックを解除できます。
シャーディングされたコレクションでの UpdateOne のアップサート動作
MongoDB7.1 以降、シャーディングされたコレクションで とともにupdateOne() upsert: true{ を使用する場合、フィルターに完全なシャードキーを含める必要はあり ません 。
シャーディングされたコレクションを使用したトランザクションの $lookup ステージ
MongoDB 8.0以降では、シャーディングされたコレクションをターゲットにしながら、トランザクション内で$lookupステージを使用できます。
複製
過半数の書込み保証(write concern)
MongoDB 8.0以降、 "majority"書込み保証 ( 書込み保証 (write concern) ) を使用する書込み操作は、レプリカセットノードの過半数が変更のoplogエントリを書込んだときに確認応答を返します。 これにより、 "majority"書き込みのパフォーマンスが向上します。 以前のリリースでは、これらの操作はレプリカセットの過半数が変更を適用した後、待機して確認応答を返していました。
アプリケーションが{ w: "majority" }書込み (write)操作(因果整合性のあるセッションなし)からの確認応答を受信した後すぐにセカンダリから読み取る場合、クエリは書込み (write) からの変更を含まない結果を返すことがあります。
新しい replSetGetStatus メトリクス
MongoDB 8.0以降では、 replSetGetStatusコマンドを使用すると次のメトリクスが利用できます。
oplogバッファ
MongoDB 8.0以降、セカンダリは各バッチの oplog エントリを並列に書込み、適用します。 書込みスレッドはプライマリから新しいエントリを読み取り、ローカル oplog に書込みます。 アプライアンス スレッドはこれらの変更をローカル データベースに非同期に適用します。 この変更により、セカンダリのレプリケーション スループットが向上します。
これにより、 metrics.repl.bufferに重大な変更が導入され、1 つのバッファではなく 2 つのバッファに対してメトリクスが提供されるようになりました。
MongoDB 8.0では、次のサーバー ステータス メトリクスが非推奨になります。
MongoDB 8.0は、次のサーバー ステータス メトリクスを追加します。
アップグレードされた TCMalloc
MongoDB 8.0以降、 MongoDBは、メモリのフラグメント化を減らし、高負荷のワークロードに対するデータベースの回復力を高めます。
新しい TCMalloc バージョンは、Transparent Huge Page の以前の本番環境の推奨事項に直接影響します。 詳細については、「自己管理型配置の TCMalloc パフォーマンスの最適化 」を参照してください。
serverStatus メトリクス
MongoDB 8.0以降、次の新しいserverStatusメトリクスではtcmallocの使用に関する情報が報告されます。
一般的な変更点
クエリ設定にコメントを追加する
MongoDB 8.0.4 以降、 setQuerySettingsを使用してクエリ設定にコメントを追加できます。例、クエリ設定を追加した理由を示すコメントを追加します。
シャットダウン パフォーマンス
MongoDB 8.0以降では、 Bulk.insert()およびデータ取り込みワークロードのパフォーマンスが向上する可能性があります。 ただし、これらのワークロードを実行した後すぐに MongoDB をシャットダウンすると、余計なデータがディスクにフラッシュされるため、時間がかかる可能性があります。
アプリケーション データをコンフィギュレーションシャードに保存
MongoDB 8.0以降では、通常のシャーディングされたクラスターのメタデータに加えて、アプリケーション データを保存するように コンフィギュレーションサーバー を構成できます。 また、コンフィギュレーションサーバーはコンフィギュレーションシャードと呼ばれます。 詳細については、「コンフィギュレーションシャード 」を参照してください。
圧縮の改善
MongoDB 7.3以降、 compactコマンドには、圧縮を続行するために回復可能な必要があるストレージ領域の最小量(メガバイト単位)が含まれる新しいfreeSpaceTargetMBオプションが含まれています。
バックグラウンド圧縮
MongoDB 8.0以降では、新しいautoCompactコマンドを使用してバックグラウンド圧縮を実行できます。 有効にすると、サーバーは各コレクションとインデックス内の空き領域を指定されたfreeSpaceTargetMB値より下に維持しようとします。
ryRun オプション
有効にすると、 compactコマンドは、対象コレクションから圧縮によって再利用できる領域の推定値(バイト単位)を返します。 dryRunをtrueに設定してcompactを実行すると、MongoDB は推定値のみを返し、圧縮は実行しません。
同時 DDL 操作
MongoDB 7.1以降では、同じデータベースから異なるコレクションを対象とする複数のDDL 操作を実行する場合、MongoDB はそれらの操作を同時に実行します。
この変更により、 serverStatus locksフィールドとcurrentOp.locks出力に 2 つの新しいタイプが追加されます。
DDLDatabaseDDLCollection
mongos 集計クエリでのデータベース検証
MongoDB 7.2 以降、 mongos配置で存在しないデータベースを使用しようとする集計パイプライン クエリでは、検証エラーが返されます。
以前のバージョンでは、これらの集計クエリは空のカーソルを返していました。
DDL 操作
MongoDB 8.0では、クラスターが DDL 操作( reshardCollectionなどのコレクションを変更する操作)を実行しているときにシャードを追加または削除すると、シャードを追加または削除する操作は、同時 DDL 操作が完了した後にのみ実行されます。
パイプラインのサイズ制限を超えるためのエラー コード
MongoDB 7.1以降では、パイプラインが パイプライン ステージの制限 を超えると、集計コマンドによってエラーがスローされるようになります。 詳細については、「ステージ数の制限 」を参照してください。
getField フィールドはすべての文字列をサポート
MongoDB 7.2 以降では、 演算子の 入力に、string に変換される任意の有効な 式field $getFieldを指定できます。以前のバージョンでは、field はstring定数のみを受け入れていました。
インデックス構築の改善
MongoDB 7.1 以降では、インデックス構築でのエラー報告が高速化され、障害回復力が高まります。 新しいindexBuildMinAvailableDiskSpaceMBパラメータを使用して、インデックスビルドに必要な最小ディスク容量を設定することもできます。これにより、ディスク容量が低すぎる場合はインデックスビルドが停止します。
次の新しいインデックス構築メトリクスが追加されました。
詳細については、「インデックス ビルド 」を参照してください。
新しいパラメーター
auditConfig Parameter
MongoDB7.1 は、auditConfig とmongod サーバーmongos インスタンスからの監査構成に関する情報を含む クラスター パラメータを追加します。
defaultMaxTimeMS パラメーター
MongoDB 8.0以降では、 defaultMaxTimeMSクラスター パラメータを使用して、個々の読み取り操作が完了するデフォルトの時間制限を指定できます。
indexBuildMinAvailableDiskSpaceMB Parameter
MongoDB 7.1では、インデックス構築に必要な最小ディスク容量を設定できるindexBuildMinAvailableDiskSpaceMBパラメータが追加されています。
tcmallocEnableBackgroundThread Parameter
MongoDB 8.0以降では、 tcmallocEnableBackgroundThreadはデフォルトで有効になっています。 これにより、MongoDB は定期的にメモリを解放してオペレーティング システムに戻すことができます。
新しいクエリシェイプとクエリ設定
MongoDB 8.0では新しいクエリシェイプが導入されています。 既存のクエリシェイプの名前が、プラン キャッシュ クエリシェイプに変更されます。
MongoDB 8.0以降では、新しいクエリシェイプのクエリ設定を追加できます。 クエリオプティマイザは、クエリプランニング中にクエリ設定を追加の入力として使用します。これは、一致するクエリシェイプを持つクエリを実行するために選択されたプランに影響します。
クエリ設定は、インデックス フィルターと比較して機能が向上しています。 インデックス フィルターも MongoDB 8.0以降は非推奨になっており、それらの使用は避けてください。
クエリ設定を追加するには、
setQuerySettingsコマンドを使用します。クエリ設定を削除するには、
removeQuerySettingsコマンドを使用します。クエリ設定を取得するには、集計パイプラインの
$querySettingsステージを使用します。クエリシェイプをブロックするには、「操作拒否フィルター 」を参照してください。
拒否されたクエリのログの冗長レベルを設定するには、
systemLog.component.query.rejected.verbosityパラメータを使用します。
MongoDB 8.0以降では、次の出力にqueryShapeHashが含まれます。
explain{ フィールドの コマンドexplain.queryShapeHash$queryStatsフィールドの ステージqueryShapeHash
MongoDB 8.0 以降では、既存の queryHashフィールドはplanCacheShapeHash という名前の新しいフィールドに重複します。 以前のバージョンのMongoDBを使用している場合は、queryHashフィールドのみが表示されます。 今後のMongoDBバージョンでは、非推奨の queryHashフィールドが排除されます。代わりに planCacheShapeHashフィールドを使用する必要があります。
numInitialChunks オプションが削除されました
MongoDB 7.2 以降では、shardCollection コマンドから numInitialChunks オプションが削除されました。サーバーは、 空のコレクションに対して ハッシュされたシャーディングを使用する場合、クラスター内のすべてのシャードにチャンクを自動的に作成します。
Parameter Filtering
MongoDB 8.0以降、 getParameterコマンドはsetAtフィールドを受け入れます。 このフィールドを使用して、 allParameters: trueが返すドキュメントをフィルタリングして、スタートアップまたは実行時に設定できるパラメータのみを表示できます。
Cappedコレクションに関する 読み取り保証 (read concern)
MongoDB8.0 以降では、"snapshot" Capped コレクションで読み取り保証 を使用できます。
serverStatus 出力の変更
MongoDB 7.1以降では、 serverStatusコマンドの出力に次の新しいメトリクスが含まれています。
MongoDB 7.2以降では、 serverStatusコマンドの出力に次の新しいメトリクスが含まれています。
MongoDB 7.3以降では、 serverStatusコマンドの出力に次の新しいメトリクスが含まれています。
MongoDB 8.0以降では、 serverStatusコマンドの出力に次の新しいメトリクスが含まれています。
ソート オプション
MongoDB8.0 以降では、updateOne() 、 、 には、更新を適用する前にドキュメントを順序付けするための任意のreplaceOne() updatesortフィールドがあります。
以前のリリースでは、 findAndModify()メソッドとfindOneAndUpdate()メソッドを使用して、ユーザー指定のソート順序で最初のドキュメントを更新していました。 再試行可能な書込みをサポートするには、これらのメソッドがドキュメント全体を各ノードの特別なサイド コレクションにコピーする必要があります。これは、新しいsortオプションを備えたupdateOne()メソッドよりもコストのかかる操作です。
個別のコマンドのクエリ インデックス ヒントの指定
MongoDB 7.1以降では、 distinctコマンドでhintフィールドが使用でき、クエリのインデックスを指定できます。
TTL Indexes
MongoDB7.1 以降では、 Cappedコレクション に TTL インデックス を作成できます。
クエリ計画と実行
Expressクエリ ステージ
MongoDB 8.0以降、限定的なクエリのセット( _id等価一致を含む)は、通常のクエリ計画と実行をスキップします。 代わりに、これらのクエリでは、次のいずれかのプラン ステージで構成される最適化されたインデックス スキャン プランが使用されます。
EXPRESS_CLUSTERED_IXSCANEXPRESS_DELETEEXPRESS_IXSCANEXPRESS_UPDATE
クエリプランの詳細についてはexplain の結果 を参照してください。
拒否されたクエリプランの出力
MongoDB 8.0以降、拒否されたクエリプランにはクエリのfind部分のみが含まれます。 以前のバージョンでは、拒否されたプランには$groupのような 集計ステージ が含まれることがあります。 これらの集計ステージは勝利プランを選択するためにクエリ プランナーによって使用されることはありません。そのため、 rejectedPlansフィールドには、勝利プランを選択するために使用されたクエリの部分のみが含まれます。
この変更により、拒否されたプランのexecutionStatsもゼロ以外になります。 その結果、拒否されたプランによって検査されたドキュメントやキーの数などの統計が表示されるようになりました。
拒否されたクエリプランの詳細については、 explain.queryPlanner.rejectedPlansをご覧ください。
スロットベースの実行エンジンの無効化
MongoDB 8.0 以降、MongoDB は、ハッシュされていないパスのハッシュされたパス プレフィックスを持つインデックスを持つコレクションのスロットベースの実行エンジンを自動的に無効にします。ここでは両方のパスがインデックスに含まれています。
バッチ複数ドキュメント挿入操作
MongoDB 8.0 以降、トランザクション外の一括挿入操作では、個々の oplog エントリが生成されなくなりました。代わりに、 MongoDB は通常、一括挿入を 1 つのエントリとしてバッチします。各ドキュメントの変更ストリームinsertイベントのclusterTime は同じです。
この変更により、複数ドキュメント挿入操作のパフォーマンスが向上し、複数のoplog書込みによって発生する可能性のあるレプリケーションラグがなくなります。
OIDC IdP は発行者を共有できます
MongoDB 8.0以降では、複数の ID プロバイダー(IDP)が定義されている場合、 audience値が各発行者に対して一意である限り、 oidcIdentityProvidersパラメータは重複するissuer値を受け入れます。 これは、バージョン7.3および7でも利用できます。 0 。
サブパイプラインの名前空間
MongoDB 以降では、8.0 $lookupと$unionWith 内のサブパイプラインの名前空間が検証され、from collフィールドと フィールドが正しく使用されるようになりました。
詳細については、「 $lookup サブパイプライン 」と「 $unionWith サブパイプライン 」を参照してください。
クエリプランナーの最適化時間
explain()メソッドがクエリ プランナーの最適化時間に関する情報を返すようになりました。queryPlanner.optimizationTimeMillisステータスは、クエリ プランナーが最適化に費やした時間をミリ秒単位で表示します。
アップグレード手順
重要
機能の互換性バージョン
MongoDB8.0 7.0配置から MongoDB にアップグレードするには、7.0 featureCompatibilityVersion配置で7.0 を に設定する必要があります。バージョンを確認するには、以下を参照してください。
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
MongoDB 8.0にアップグレードするには、MongoDB 配置に固有のアップグレード手順を参照してください。
8.0 へのアップグレードに関するガイダンスが必要な場合は、MongoDB プロフェッショナル サービスがメジャー バージョン アップグレード サポートを提供して、MongoDB アプリケーションを中断することなくスムーズに移行できるようにします。詳細については、MongoDB コンサルティングを参照してください。
ダウンロード
MongoDB 8. 0 をダウンロードするには、MongoDB ダウンロードセンターにアクセスします。
ダウングレードの考慮事項
単一バージョンのダウングレードのみサポート
MongoDB は 1 つのバージョンのダウングレードのみをサポートします。現在のリリースより数バージョン前のリリースにダウングレードすることはできません。
例、8.0 シリーズの配置を 7.0 シリーズにダウングレードできます。ただし、7.0 シリーズの配置から 6.0 シリーズの配置へのさらなるダウングレードはサポートされていません。
ダウングレード ポリシー
MongoDB Community Edition ではバイナリー ダウングレードはサポートされていません。
配置の fCV を MongoDB の Rapid Release バージョンにダウングレードしたり、Rapid Release バージョンから任意のバージョンにダウングレードしたりすることはできません。
配置の FCv をアップグレードまたはダウングレードする場合、サポートの支援なしにエンタープライズ配置のバイナリ バージョンをダウングレードすることはできません。