このページでは、MongoDB 6.0 で導入された変更点と新機能について説明します。
MongoDB 6.0 はメジャー リリースであるため、MongoDB Atlas とオンプレミスの配置の両方でサポートされます。MongoDB 6.0 には、MongoDB Rapid Release 5.1、5.2、5.3 で導入された変更が含まれています。このページでは、これらの Rapid Release と MongoDB 6.0 で導入された変更について説明します。
メジャー リリースと Rapid Release の違いの詳細については、「 MongoDB のバージョン管理 」を参照してください。
警告
過去のリリース制限
以下の 重要な助言 は、一部の MongoDB の前のバージョンに影響します。 配置が重要な助言によって影響を受ける機能に依存している場合は、利用可能な最新のパッチ リリースにアップグレードしてください。
問題 | 影響を受けるバージョン |
|---|---|
6.0.0 | |
6.0.0 - 6.0.12 | |
6.0.0 - 6.0.11(metaField 埋め込みオブジェクトによってシャーディングされた時系列コレクション) | |
6.0.0 - 6.0.13 | |
6.0.0 - 6.0.4(ARM64 または POWER システム アーキテクチャ) | |
6.0.0 - 6.0.5(Ops Manager または Cloud Manager クラスターの増分バックアップ) | |
6.0.0 - 6.0.16 | |
6.0.0 - 6.0.14 |
パッチ リリース
6.0.27 - Dec 19 、 2025
重要
MongoDB 6.0.27には CVE-2025-14847 に対する修正が含まれています。
MongoDBセキュリティ更新の最新情報については、MongoDBセキュリティ更新を参照してください。
6.0.26 - Aug 15, 2025
修正された問題:
6.0.25 - 7 月17 、 2025
修正された問題:
SERVER-83221 : クラスター化されたコレクション listIndexes は TTL を表示する必要があります
SERVER-92411 : すべてのドキュメントソース集計ステージで認証チェックがあることをテスト
SERVER-95523 : アップサートが DuplicateKey の再試行を正しく処理しない
SERVER-95524 : マルチドキュメントトランザクションでのアップサートの重複キー エラーでの再試行を回避します
SERVER-95672: サブ配列を含む配列フィールドのインデックスには、一部の結果が含まれません
6.0.24 - Jun 04, 2025
SERVER-82037 : ソーターのスピルで使用されるメモリは、無制限に増加する可能性があります
SERVER-88400: shardedDataDistribution 集計ステージは、時系列データに対して null フィールドを返してはなりません
SERVER-92806 : プランキャッシュエントリが $elemMatch とのインデックス照合を無視する
SERVER-95976 :変更ストリームステージで "matchCollectionUUIDForUpdateLookup" パラメーターを導入しました
WT-13283 キャッシュのアアクティブモードを修正してガベージ値が表示されないようにします
6.0.23 - Apr 29, 2025
重要
不完全なデータの誤処理により mongos が新しい接続を受け入れなくなる可能性があることを修正しました
CVE-2025-6714 により、6.0.23 以前のMongoDB 6.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-93120 : ロックされた backupCursor 状態の読み取りでブロックされた FTDCコレクション
SERVER-106753 : 不完全なデータの不適切な処理により、
mongosが新しい接続を受け入れなくなる可能性があります
6.0.22 - Apr 14, 2025
重要
MongoDB Server は$mergeCursors ステージにより特権昇格の影響を受けやすい可能性があります。
CVE-2025-6713 により、6.0.22 以前のMongoDB 6.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ステージにより特権昇格の影響を受けやすい可能性があります
6.0.21 - 3月は17と2025
重要
MongoDBサーバーの OIDC 認証におけるサービス脆弱性の事前認証拒否
CVE-2025-6709 により、6.0.21 以前のMongoDB 6.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 により、6.0.21 以前のMongoDB 6.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-94405 FCV 5 にダウングレードするときに、セッションコレクションの自動分割を再度有効にします。0
SERVER-96252 setOrganCountersOnRangeDeletionTasks は、シャードキーインデックスがない場合、失敗します
SERVER-98720「プラン エグゼキュータ エラー」警告ログに欠落しているredact() 呼び出しを追加
SERVER-100594 fromjson の最大深度を 250 から 200 に下げ
SERVER-101298 グローバルロックを圧縮する前に PBWMロックをオプトアウトします
SERVER-106748 OIDC認証を受け入れる場合のサービスの事前認証拒否
SERVER-106749 MongoDBの過剰再帰によるJSON解析でのサービスStack Overflow脆弱性の事前認証拒否
6.0.20 - Jan 15, 2025
SERVER-93205 serverStatus で preserveUnique インデックスの数を公開
SERVER-94144 $lookup 内の $documents は QueryStats での解析に失敗します
SERVER-94592 explain の内部引数を確認
SERVER-94635 セッション更新パラメータを構成可能にします
SERVER-95445 SSLanagerOpenSSL は、リーフノードだけでなく、証明書チェーン全体を CRL に対して検証する必要があります
6.0.19 - 10 月24 、 2024
重要
null バイトの不適切な中性化により、 MongoDB Serverでバッファのオーバー読み取りが発生する可能性があります
より前のMongoDB6.0 6.0.19では、承認されたユーザーは、 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.2
SERVER-96419 null バイトの不適切な中性化により、 MongoDB Serverでバッファの過剰な読み取りが発生する可能性があります
6.0.18 - 9 月30 、 2024
SERVER-70508 Linuxの serverStatus の extra_info に現在のスレッド数を追加します
SERVER-94166 v で SBE クエリエンジンを無効にします。60
SERVER-94170 SERVER-91570 を元に戻す
6.0.17 - Aug 21, 2024
重要
CSFLE および Queryable Encryption の自己検索で、暗号文ではなくプレーンテキストとしてサブパイプラインの値が送信されることがある問題を修正します
CVE-2024 -8013 により、 以前のMongoDB6.0 6.0.16では、特定の複雑な自己参照$lookup サブパイプラインのクエリ分析でバグが発生し、送信される暗号化されたフィールドの式でリテラル値が発生する可能性があります。不正な形式サーバーに渡す。
このような状況が発生した場合、ドキュメントは返されたり書込まれたりすることはありません。 この問題は、次の MongoDB Server バージョンのmongocryptdバイナリとmongo_crypt_v1共有ライブラリに影響します。
7.3.0 - 7.3.3
7.0.0 - 7.0.11
6.0.0 - 6.0.16
5.0.0 - 5.0.28
CVSS スコア: 2.2
CWE: CWE-319: 機密情報のクリアテキスト送信
サーバー -96254 CSFLE および Queryable Encryption の自己検索では、サブパイプラインにおける値の暗号化に失敗する可能性があります
SERVER-85892 $merge は $documents エラーを返した後にパイプラインを使用します
SERVER-91195 トップレベルの時系列コレクションオプションを見逃しないように汎用的なバックポート可能なソリューションを提供します
SERVER-91362 パフォーマンス: キャッシュされた JsExecution が存在する場合、 JavaScript 「スコープ」オブジェクトをコピーしないでください
SERVER-91406 $changeStreamSplitLargeEvent は名前変更不可のマッチ式で使用すると 7182803 エラーを返します
WT-12708 エビクションランダム トラバーサルの評価と修正
6.0.16 - Jun 28, 2024
サーバー -79637 相関述語を使用した TS 外部コレクションの
$lookupでクエリ結果が不正確となるSERVER-86474 $_ internalApplyOplogUpdate と
$set: { foo: Timestamp(0, 0) }が正しくレプリケーションされないSERVER-89625 バックアップ中に名前空間と UUID を報告するときに、directoryPerDb と wiredTigerDirectoryForIndexes を正しく処理します
WT-10807 ツリー ウォークスルーの一部としてメモリ内の削除ページをスキップします
WT-12609 チェックポイントのクリーンアップとページ エビクション ロジックを改善してください
6.0.15 - Apr 18, 2024
SERVER-72703 $out の DB ロックを MODE_IX にダウングレード
SERVER-78556 internalInsertMaxBatchSize のデフォルトを 64 に戻します
サーバー -80363: wtimeout が設定されている場合、サーバーでデフォルトの writeConcern が無視されます。
SERVER-83602 $or -> $in MatchExpression の書き換えでは、別の $or に直接ネストされた $or が生成されないはず
WT-11062 同時アクセスを可能にするために参照アドレスを安全に解放
6.0.14 - Feb 28, 2024
重要
MongoDB Server が信頼できない接続が成功する可能性があることに対する修正
CVE- 2024 - 1351により、 6.0.14以前の MongoDB 6.0では、 --tlsCAFileおよびCAFileの特定の構成において、MongoDB Server がピア証明書の検証をスキップし、信頼できない接続が成功する可能性があります。
これにより、TLS によって提供されるセキュリティ保証と、証明書の検証のために閉じられる必要があるオープン接続を実質的に削減する可能性があります。 この問題は、次の MongoDB Server バージョンに影響します。
7.0.0 - 7.0.5
6.0.0 - 6.0.13
5.0.0 - 5.0.24
4.4.0 - 4.4.28
CVSS スコア: 8.8
CWE: CWE-295: 不適切な認定検証
SERVER-82353 movePrimary が同時に実行されると、マルチドキュメントトランザクションでドキュメントが失われる可能性あり
SERVER-83119 notablescan が有効になっている場合、クラスター化されたコレクションでセカンダリ レプリカがクラッシュします
SERVER-83145 共有バッファ フラグメントが freeUnused() でメモリ使用量の追跡が誤っています
SERVER-83564 プロセス フィールドが config.locks でインデックスされていることを確認
WT-12077 スタック上のバッファ用 Z Series におけるハードウェアチェックサム値の計算が正しくありません
6.0.13 - Jan 18, 2024
サーバー -33494: WT SizeStorer は古いエントリを削除しません。
SERVER-50792 shardCollection/refineCollectionShardKey のシャードキー インデックスが見つからない場合に、より有用なエラーを返す
SERVER-70155 mongod 「低速クエリ」ログ行にoplogスロットが開いたままである期間を追加
SERVER-77506 シャーディングされたマルチドキュメントトランザクションでは、データと ShardVersion が一致しない可能性があります
SERVER-83091 $or クエリはプラン列挙中に無限ループを引き起こす可能性あり
6.0.12 - 2023 年 11 月 27 日
サーバー -69244: セッションのデフォルトの読み取り保証(read concern)が「majority」に設定されていると、$merge は失敗します。
SERVER-81295 V1 再開トークンを使用して、V2 changeStream パイプラインを再開できません
SERVER-81966 更新中に以前の MongoDB インスタンスの変更を避ける
WT-7929 チェックポイント中の FTDC ストールを回避するための解決法を調査すること
WT-11564 チェックポイントに存在する場合にのみ最新のトランザクション値を読み取るように RTS を修正
6.0.11 - 2023 年 10 月 11 日
SERVER-58534 FTDC で FCV を収集
サーバー -69244: セッションのデフォルトの読み取り保証(read concern)が「majority」に設定されていると、$merge は失敗します。
SERVER-71520 RSTL 取得タイムアウト時にすべてのスレッド スタックを書き出して保存
SERVER-79498 $vectorSearch を 6.0 にバックポートします
SERVER-80021 $convertが double と string の間で正しくラウンドトリップを作成する
6.0.10 - 2023 年 9 月 14 日
SERVER-71627 キャッシュされたコレクション ルート情報を更新すると、100万チャンクのクラスターですべてのクライアントリクエストが著しくブロックされます。
SERVER-73394 失敗する operationsBlockedByRefresh メトリクスを排除します
SERVER-77183 $project の後に $group を続けると、誤った結果が返されることがあります
SERVER-79771 networkInterfaceExceededTimeLimit に対してリシャーディング操作を回復性のあるものにする Jira に関する問題は、6.0.10 で終了しました
6.0.9 - Aug 14, 2023
SERVER-60466 addShard の実行前に、署名された $clusterTimes をレプリカセット --shardsvrs にゴシップするドライバーをサポートします。
SERVER-74954 $ が含まれている場合、または $elemMatch の追加条件を書き換えた場合、結果が不正確になる
SERVER-79136 時系列のメタフィールドでの $match + $group のクエリ結果が正しくありません
WT-10759 調整中に履歴保存ページの強制削除を再試行しないこと
WT-11064 アップデートの廃止チェックの一環として、グローバルに表示されるトゥームストーンをスキップすること
6.0.8 - 2023 年 7 月 13 日
SERVER-61127 マルチ書き込みでは、進行中のチャンク移行がある場合に再試行回数を使い果たす可能性があります
SERVER-77005 LDAP ダウンタイム中は LDAP ユーザーをログインしたままにします
SERVER-78126 特定の種類の入力の場合、mongo::Value() はビッグ エンディアン プラットフォーム上で常に同じ結果にハッシュします
6.0.7 - Jun 28, 2023
SERVER-71985 DuplicateKey エラー発生時に時系列挿入を自動的に再試行する
SERVER-73007 CURL_OPT_SEEKFUNCTION がマルチパス認証に設定されていない
SERVER-74551 mongo 5.0 へのアップグレード後に、findAndModify 中に WriteConflictException が警告として不必要にログに記録さる
SERVER-77018 dbStats と 2 つのインデックス構築のデッドロック
WT-10449 履歴ストアに書き込むアップデートがない場合、アップデートチェーンを保存しないこと
WT-11031 チェックポイントに時間ウィンドウ情報のないテーブルをスキップするように RTS を修正
6.0.6 - 2023 年 5 月 12 日
SERVER-51835 Mongos readPreferenceTags が期待どおりに機能していない
SERVER-67105 $inクエリはクラスター化インデックスを使用しません
SERVER-72774 休止モードのノードが選出される可能性あり
SERVER-74930 $avg は集計 $group の平均ではなく合計を返します
SERVER-75205 すべての読み取りチケットが使い果たされた後に、ステップダウンと復元ロックの間でデッドロックが発生する
6.0.5 - 2023 年 3 月 13 日
警告
MongoDB の既存のインスタンスを MongoDB 6.0.5 にアップグレードする場合、 mongod.confファイルにfork: trueが設定されていると、そのインスタンスが起動に失敗する可能性があります。
アップグレードの問題は、.deb または .rpm インストール パッケージを使用するすべてのMongoDBインスタンスに影響します。tarball(.tgz)リリースまたはその他のパッケージタイプを使用するインストールは影響を受けません。詳細については、SERVER-74345 を参照してください。
fork: true設定を削除するには、システム ターミナルから次のコマンドを実行します。
systemctl stop mongod.service sed -i.bak '/fork: true/d' /etc/mongod.conf systemctl start mongod.service
設定が削除された後に、2 番目のsystemctlコマンドはアップグレードされたインスタンスを起動します。
修正された問題:
SERVER-61909 多数のインデックスエントリを持つドキュメントの挿入または削除がハングする
SERVER-66469 日付フィールドで時系列をフィルタリングすると、1970 年より前の結果は含まれません。
サーバー -68122 最初の同期中にコレクション WiredTiger 構成文字列を複製する方法について調査します
SERVER-70395 スロット ベースのエンジンは $group でディスクを過度に使用するため、速度が遅くなります
SERVER-73232
_killOperationsのデフォルトのログ冗長度を変更します
6.0.4 - Jan 26, 2023
修正された問題:
SERVER-72416 find と findAndModify プロジェクション コードはコレクション レベルの照合を尊重しない
SERVER-71759
dataSizeコマンドが生成されないSERVER-70237 チャンクのマージ コミットでは、大きすぎる BSON オブジェクトを作成してはいけません
SERVER-72222
mapReduceで single reduce が最適化されている場合、マージングの結果シャードされたクラスターが作成されると失敗しますWT-9268 履歴保存レコードの削除を調整まで遅らせる
6.0.3 - 2023 年 11 月 21 日
修正された問題:
SERVER-66289 $out が v5.0.8 で BSONObj のサイズエラーを誤ってスローする
SERVER-68139 プロジェクション ソートが 100 MB より大きい場合、再シャーディング コマンドは失敗
SERVER-68371 MongoClient で CSFLE を有効にすると Atlas Search が失敗します
SERVER-68115 「elemMatchRootLength > 0」不変トリガーのバグ修正
SERVER-68394 _id インデックスが欠落している場合、スタートアップ時のリカバリで強力なロックが生成されないようにします
6.0.3 - 2023 年 9 月 28 日
修正された問題:
SERVER-68925 起動時にチェックテーブルログ設定を再導入する(SERVER-43664 を元に戻す)
SERVER-68628 プライマリ フェイルオーバー後に失敗した再シャーディング操作を再試行すると、サーバーのクラッシュや書き込みの損失につながる可能性あり
SERVER-63852 getThreadName() はクラッシュしないようにする必要があります
SERVER-65317 mongod は単純な $検索クエリを実行した後、接続プールから接続を削除します
SERVER-63843 同期シグナル ハンドラーで再帰的な doLog を許可しない
WT-9870 リカバリ中に最も古いタイムスタンプが更新されるたびに、固定されたタイムスタンプを更新する問題を修正しました
6.0.1 - Aug 19, 2022
修正された問題:
SERVER-68511
config.databasesエントリの movePrimary 更新では、ドット フィールド表記を使用する必要がありますSERVER-68062 $geoNear を使用する複数ステージの集計は制約に違反する可能性があります
SERVER-66072 $match サンプリングと $group 集計の奇妙な動作
SERVER-68130 AutoSplitVector は BSONObjMaxUserSize より大きい応答を生成する可能性あり
SERVER-68209
config.image_collectionエントリの無効化を防ぐ uassert を削除します
6.0.0 - 2022 年 7 月 19 日
このページの残りの部分では、MongoDB 6.0 で導入された変更点と新機能について説明します。
集計
新しい集計ステージ
MongoDB 6.0 では、次の集計ステージが導入されています。
ステージ | 説明 |
|---|---|
指定フィールドの値が欠落している一連のドキュメントに新しいドキュメントを作成します。 | |
入力式からリテラル ドキュメントを返します。 | |
ドキュメント内の | |
バージョン 6.0.3 で追加: シャーディングされたコレクションのサイズとデータ分布の情報を提供します。 |
新しい集計演算子
MongoDB 6.0 では、次の集計演算子が導入されています。
演算子 | 説明 |
|---|---|
指定ソート順に従って、グループ内の最下位の要素を返します。 | |
指定ソート順に従って、グループ内の最下位である | |
グループ内の最初の | |
配列の先頭から指定した数の要素を返します。 | |
グループ内の最後の | |
配列の末尾から指定した数の要素を返します。 | |
線形補間 | |
Last observation carried forward(LOCF)法。ウィンドウ内の | |
グループ内で値が最大である | |
配列内の | |
グループ内で値が最小である | |
配列内の | |
配列をその要素に基づいてソートします。 | |
指定ソート順に従って、グループ内の最上位の要素を返します。コマンド | |
指定ソート順に従って、グループ内で最上位である | |
$lookup そして、シャーディングされたコレクションを持つ $graphLookup
MongoDB 5.1 以降では、$lookup ステージと $graphLookup 集計ステージにおいて from パラメーターでシャーディングされたコレクションがサポートされるようになっています。
以前のバージョンの MongoDB では、$lookup と $graphLookup では、シャーディングされていない from コレクションのみが許可されていました。
シャーディングされたコレクションをターゲットにしている間は、トランザクション内で $graphLookup ステージを使用できません。
変更ストリーム
最適化された変更ストリーム
MongoDB 5.1 以降では、変更ストリームが最適化され、リソースの使用効率が上がり、一部の集計パイプライン ステージの実行が高速化されています。
wallTime ストリーム出力フィールドの変更
MongoDB 6.0 以降で変更ストリーム出力に新たに追加された wallTime フィールドでは、サーバー日付とデータベースの操作時間が確認できます。
変更ストリームにおけるドキュメントの変更前と変更後のイメージ
MongoDB 6.0 以降では、変更ストリームを使用して、変更前と変更後のドキュメントのバージョン(ドキュメントの事前イメージと事後イメージ)を出力できます。例については、「Change Streams とドキュメントの変更前イメージおよび変更後イメージ」を参照してください。
変更ストリームの拡張イベント
MongoDB 6.0 以降では、インデックスの作成やコレクションの削除といった DDL 操作を補完する変更イベントを変更ストリームに表示できます。
詳細については、「拡張イベント」を参照してください。
フィルター
MongoDB 6.0 以降では可能な限り、一致フィルターが変更ストリームに適用される時期が以前のリリースより早くなっています。これにより、パフォーマンスが向上します。ただし、フィルターが狭く定義されている場合は、早期に一致させることで、以前のバージョンでは成功する操作が 6.0 では失敗する可能性があります。
クラスター管理
Cluster Server Parameters
MongoDB 6.0以降では、 自己管理型配置のクラスター パラメーター を使用して、レプリカセットまたはシャーディングされたクラスター内のすべてのノードの構成オプションを変更、取得できます。 クラスター全体のオプションを変更するにはsetClusterParameterを、クラスター パラメータの値を取得するには、 getClusterParameterを使用できます。
接続プールのパラメーター
MongoDB 6.0 以降では、ShardingTaskExecutorPoolMinSizeForConfigServers と ShardingTaskExecutorPoolMaxSizeForConfigServers を使用して、構成サーバーのシャーディング TaskExecutor 接続プールの最小サイズと最大サイズを設定できます。
changeStreamOptions Cluster Parameter
MongoDB 6.0 以降では、changeStreamOptions を使用して変更ストリームの変更前と変更後のイメージの保持ポリシーを制御できます。
internalSessionsReapThreshold Parameter
MongoDB 6.0 以降では、新しいinternalSessionsReapThreshold パラメーターを使用して、内部セッションでのメタデータの削除にセッション制限を設定できます。
複数のアービタがサポート対象外
MongoDB 5.3 以降では、レプリカセット内の複数のアービタのサポートはデフォルトで無効になっています。複数のアービタのサポートを有効にするには、各ノードを allowMultipleArbiters パラメーターで起動します。
クラスター化されたコレクション
MongoDB 5.3 以降では、クラスター インデックス付きのコレクションを作成できます。 クラスター化されたインデックスを使用して作成されたコレクションは、クラスター化されたコレクションと呼ばれます。
通常のコレクションと比較した利点については、「クラスター化されたコレクション」を参照してください。
Indexes
MongoDB 5.1 以降では、collMod データベースコマンドを使用して、既存の単一フィールドに作成される TTL 以外のインデックスに expireAfterSeconds オプションを追加できます。
MongoDB 6.0 以降では、collMod コマンドでprepareUnique と unique オプションを使用して、既存の標準インデックスを一意のインデックスに変換できます。
部分インデックス
MongoDB 6.0 以降では、演算子 $in と $or を使用して部分インデックスを作成できます。partialFilterExpression の最大深度も 2 から 4 へ拡大できます。また、演算子 $and と $or を最上位レベル以外で使用できるようになりました。
インストール
SELinux ポリシー
MongoDB 5.1 以降では、次のサーバー向けに新しい SE Linux ポリシーが導入されています。
いずれも Red Hat Linux で実行します。この SELinux ポリシーは、rpm インストーラー パッケージを使用したデフォルトのインストールで使用されます。
プラットフォーム サポート
MongoDB 6.0.3 では、 RHEL 、CentOS、Oracle、Rocky、AlmaLinux 9 のサポートが導入されています。
RHELに MongoDB をインストールするには、以下を参照してください。
レプリカセット
複数のアービタがサポート対象外
MongoDB 5.3 以降では、レプリカセット内の複数のアービタのサポートはデフォルトで無効になっています。複数のアービタのサポートを有効にするには、各ノードを allowMultipleArbiters パラメーターで起動します。
initialSyncMethod Parameter
MongoDB 5.2 以降では、最初の同期が論理的な最初の同期になるかファイル コピーをベースとする最初の同期になるかは、initialSyncMethod によって決定されます。
initialSyncMethod は MongoDB Enterprise Server でのみ利用可能です。
セカンダリ oplog バッチ遅延の指定
MongoDB 6.0 以降では、 oplogBatchDelayMillisサーバー パラメータを使用してセカンダリでの oplog バッチ書込みの遅延を指定できます。 oplog バッチの短い遅延を追加するとセカンダリのIOPSを削減できますが、 書込み保証 (write concern "majority"による書込みのレイテンシが増加します。
詳細については、oplogBatchDelayMillis を参照してください。
セキュリティ
監査ログの暗号化
MongoDB 6.0 Enterprise 以降では、MongoDB の監査ログを暗号化できます。
監査するログを構成するには、「監査ログ」を参照してください。
サーバー パラメータ
mongod 次のパラメーターを追加します。
transactionTooLargeForCacheThreshold(MongoDB 6.0.5 以降。)
シャーディング
$shardedDataDistribution を使用してシャーディングされたデータディストリビューションを分析
MongoDB 6.0.3 以降、 $shardedDataDistributionステージを使用して、シャーディングされたデータがクラスター全体にどのように分散されているかを分析できます。
MongoDB 5.0 を実行中いる場合は、クラスターをMongoDB 6.0 にアップグレードし、シャーディングされたデータ分布を分析できます。 詳細については、「 シャーディングされたデータ分散の分析 」を参照してください。
ポリシーの変更のバランシング
MongoDB 6.0.3 以降では、シャーディングされたクラスター内のデータは、チャンクの数ではなくデータサイズに基づいて分散されます。 その結果、シャーディングされたクラスターのデータ分散動作における次の重要な変更に注意する必要があります。
バランサーは、チャンクではなくデータの範囲を分散します。 バランシング ポリシーは、チャンク分散ではなくデータ分散の均等性を重視します。
チャンクは自動分割の対象となります。 代わりに、チャンクはシャード間で移動された場合にのみ分裂されます。
チャンクは範囲と呼ばれるようになりました。
moveRangeは、moveChunkの後継機能です。
デフォルトのチャンクサイズが 64MB から 128MB に増加
MongoDB 5.2 以降のデフォルトのチャンク サイズは 128 メガバイトです。MongoDB の以前のバージョンのデフォルトのチャンク サイズは 64 メガバイトです。
enableSharding が不要に
MongoDB 6.0 以降、コレクションのシャードに enableSharding コマンドは不要になっています。
デフラグ ステータスの監視
MongoDB 5.3 以降では、チャンクのデフラグ中の名前空間で balancerCollectionStatus コマンドを実行すると詳細な情報が返されます。出力にはデフラグの現在のフェーズと、処理が残っているチャンクの数が含まれます。
出力の例については、「進行中のデフラグ プロセス」を参照してください。
スロットベースのクエリ実行エンジン
MongoDB 5.1 以降、MongoDB では適格なクエリを対象に、スロットベースと呼ばれる新しいクエリ実行エンジンが使用されます。スロットベースのクエリ実行エンジンを使用する場合、新しいフィールドがクエリ explain プランの出力に含まれます。
可能な場合は、新しいクエリ実行エンジンが使用されます。
新しいクエリ実行エンジンを使用する場合、新しいフィールドがクエリ explain プランの出力に含まれます。
スロットベースのクエリ実行エンジンは、$group および $lookup ステージを実行できます
バージョン 6.0 以降、MongoDB ではスロットベースのクエリ実行エンジンを使用して、特定の条件が満たされた場合に、対象となる $group ステージと $lookup ステージが実行されます。
詳細については、「スロットベースのクエリ実行エンジンのパイプラインの最適化」を参照してください。
Stable API
次のセクションでは、MongoDB 6.0 で導入された Stable API への追加項目について説明します。
Stable API で使用できるデータベース コマンドの完全なリストを確認するには、「Stable API の変更ログ」を参照してください。
データベース コマンド
MongoDB 6.0 以降では、Stable API で次のデータベースコマンドがサポートされます。
コマンド | 説明 | Stable API バージョン |
|---|---|---|
コレクションまたはビューに含まれるドキュメント数をカウントします(MongoDB 5.0.9 以降の 5.0 シリーズの配置向け Stable API でも利用できます)。 | V1 |
集計ステージと演算子
MongoDB 6.0 以降では、Stable API で次の集計ステージと演算子がサポートされます。
ステージまたは演算子 | 説明 | Stable API バージョン |
|---|---|---|
指定ソート順に従って、グループ内の最下位の要素を返します。 | V1 | |
指定ソート順に従って、グループ内の最下位である | V1 | |
指定された時間単位数の分だけDateオブジェクトを増加させます。 | V1 | |
2 つの日付の差を返します。 | V1 | |
指定された時間単位数でDateオブジェクトを減算します。 | V1 | |
日付を切り捨てます。 | V1 | |
フィールド内の特定の値が欠落しているドキュメントのシーケンス内に新しいドキュメントを作成します。 | V1 | |
| グループ内の最初の | V1 |
| 配列の先頭から指定した数の要素を返します。 | V1 |
ドキュメントから指定したフィールドの値を返します。 | V1 | |
| グループ内の最後の | V1 |
| 配列の末尾から指定された数の要素を返します。 | V1 |
Last observation carried forward(LOCF)法。ウィンドウ内の | V1 | |
| グループ内の最大値である | V1 |
| 配列内の | V1 |
| グループ内の最小値である | V1 |
| 配列内の | V1 |
ドキュメント内の指定フィールドを追加、アップデート、排除します。 | V1 | |
コレクション内の指定されたドキュメント範囲(ウィンドウと呼ばれる)に対して操作を実行し、選択したウィンドウ演算子に基づいて結果を返します。 | V1 | |
配列をその要素に基づいてソートします。 | V1 | |
指定ソート順に従って、グループ内の最上位の要素を返します。 | V1 | |
指定ソート順に従って、グループ内で最上位である | V1 | |
V1 | ||
V1 |
ウィンドウオペレーター
MongoDB 6.0 以降では、Stable API で以下のウィンドウ演算子がサポートされます。
ウィンドウ演算子 | 説明 | Stable API バージョン |
|---|---|---|
各ドキュメントに式を適用した結果取得されるすべての一意の値の配列を返します。 | V1 | |
指定された式の平均を返します。数値以外の値は無視します。 | V1 | |
グループまたはウィンドウ内のドキュメントの数を返します。 | V1 | |
2 つの数値式の母共分散を返します。 | V1 | |
2 つの数値式のサンプル共分散を返します。 | V1 | |
| V1 | |
指定されたウィンドウ内の平均変化率を返します。 | V1 | |
| V1 | |
数値式の指数移動平均を返します。 | V1 | |
V1 | ||
曲線下面積の近似値を返します。 | V1 | |
V1 | ||
Last observation carried forward(LOCF)法。ウィンドウ内の | V1 | |
各ドキュメントに式を適用した結果取得される最大値を返します。 | V1 | |
各ドキュメントに式を適用した結果取得される最小値を返します。 | V1 | |
各ドキュメントに式を適用した結果取得される値の配列を返します。 | V1 | |
| V1 | |
| V1 | |
各ドキュメントに数値式を適用した結果取得される母標準偏差を返します。 | V1 | |
各ドキュメントに数値式を適用した結果取得される標本標準偏差を返します。 | V1 | |
各ドキュメントに数値式を適用した結果取得される合計を返します。 | V1 |
時系列コレクション
次のセクションでは、時系列コレクションの改善点と新機能について説明します。
シャーディングされた時系列コレクション
MongoDB 5.1 では、シャーディングされた時系列コレクションをサポートしています。
次を参照してください。
更新と削除
MongoDB 5.1 以降、時系列コレクションでは制限付きでアップデート操作と削除操作をサポートしています。
「時系列」列の圧縮
MongoDB 5.2 以降では、時系列コレクションで列圧縮機能を使用できます。この機能には多数のイノベーションが導入されており、これらを組み合わせることで、実用的な圧縮の大幅な改善、ディスク上のデータの全体的ストレージ容量削減、読み取り性能の向上を実現しています。
MongoDB 6.0 以降では、時系列カラムの圧縮の一部として配列も圧縮されます。
サポート $geoNear
MongoDB 5.3 以降では、$geoNear パイプライン演算子を時系列コレクションの任意のフィールドで使用できます。
追加のセカンダリインデックスのタイプ
時系列コレクションには補足的なセカンダリインデックス タイプ(2dsphere や 2d インデックスなど)を追加できます。
追加のインデックスとその他の改善については、「 MongoDB 6.0 の時系列セカンダリインデックス 」を参照してください。
ソート操作でのセカンダリインデックスの使用
時系列コレクションのソート操作では、パフォーマンスを向上させるためにインデックスを使用することができます。詳細情報と例については、「セカンダリインデックスの使用によるソート パフォーマンスの向上」を参照してください。
全般的な改善
ハッシュされたシャードキーインデックスの削除
MongoDB 6.0.12 (および 5.0.22) 以降、 ハッシュされたシャードキーのインデックスを削除できます。
これにより、ハッシュされたシャードキーでシャーディングされたコレクションのデータ挿入を高速化できます。
詳細については、「ハッシュシャードキー インデックスの削除」を参照してください。
OpenSSL3 FIPS のサポート
MongoDB 6.0.7以降では以下のオペレーティング システムの場合、FIPS モードで OpenSSL3 をサポートします。
Ubuntu 22.04
RHEL 9
Amazon Linux 2023
上限付きコレクションの改善点
MongoDB 6.0 以降では、collMod コマンドを使用して、上限付きコレクションの最大サイズ(バイトまたはドキュメント数単位)を変更できます。詳細については、「上限付きコレクションのサイズ変更」を参照してください。
numOrphanDocs collStats コマンドに追加されたフィールド
MongoDB 6.0 以降では、collStats 出力に collStats.numOrphanDocs フィールドが追加されており、コレクション内の孤立したドキュメント数が表示されます。
serverStatus 出力の埋め込みフィールドを除外する
MongoDB 6.0(および 5.0.9)以降では、serverStatus 出力から埋め込みフィールドを除外できます。
接続
MongoDB 6.0 以降では、Mongo() 接続オブジェクトに次の新しいメソッドが追加されました。
診断バックトレース生成のサポート開始: arm64
MongoDB 6.0(および 5.0.10)以降では、arm64 での診断バックトレース生成がサポートされています。
キャッシュされた LDAP ユーザー情報の更新間隔の構成
MongoDB 5.2 以降では、次の新しいサーバーパラメーターを使用して、キャッシュされた LDAP ユーザー情報の更新間隔を構成できます。
MongoDB 5.2 以降、LDAP サーバーから取得されたキャッシュ済みユーザー情報の更新間隔は、ldapShouldRefreshUserCacheEntries に基づきます。
true の場合は
ldapUserCacheRefreshIntervalを使用します。false の場合は
ldapUserCacheInvalidationIntervalを使用します。
互換性に影響する変更
一部の変更は互換性に影響を与える可能性があり、ユーザーのアクションが必要になる場合があります。互換性の変更の詳細なリストについては、「MongoDB 6.0 の互換性の変更」を参照してください。
アップグレード手順
重要
機能の互換性バージョン
MongoDB 5.0 配置から MongoDB 6.0 にアップグレードするには、5.0 配置で featureCompatibilityVersion を 5.0 に設定する必要があります。バージョンを確認するには、以下を参照してください。
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
MongoDB 6.0 にアップグレードするには、お使いのMongoDB 配置に固有の次のアップグレード手順を参照してください。
6.0 へのアップグレードに関するガイダンスが必要な場合は、MongoDB プロフェッショナル サービスがメジャー バージョン アップグレード サポートを提供して、MongoDB アプリケーションを中断することなくスムーズに移行できるようにします。詳細については、MongoDB コンサルティングを参照してください。
ダウングレードの検討事項
MongoDB は 1 つのバージョンのダウングレードのみをサポートします。現在のリリースより数バージョン前のリリースにダウングレードすることはできません。
たとえば、6.0 シリーズの配置を 5.0 シリーズにダウングレードできます。ただし、5.0 シリーズの配置から 4.4 シリーズの配置へのさらなるダウングレードはサポートされていません。
ダウンロード
MongoDB 6. 0 をダウンロードするには、MongoDB ダウンロードセンターにアクセスします。
既知の問題点
このセクションでは、MongoDB 6.0 の既知の問題とその解決ステータスについて説明します。
バージョン | 問題 | ステータス |
|---|---|---|
6.0.0 | SERVER-68062:$geoNear を使用するマルチステージ集計は制約に違反する可能性があります。 | 6.0.1 で解決済み。 |
問題を報告する
問題を報告するには、MongoDB GitHub リポジトリで、MongoDB サーバーまたは関連プロジェクトのいずれかに対して JIRA チケットを提出する手順を参照してください。