MongoDB 5.0 のリリースノート
項目一覧
注意
2021 年 7 月 13 日リリースのMongoDB 5.0
パッチ リリース
警告
過去のリリース制限
以下の 重要な助言 は、一部の MongoDB の前のバージョンに影響します。 配置が重要な助言によって影響を受ける機能に依存している場合は、利用可能な最新のパッチ リリースにアップグレードしてください。
問題 | 影響を受けるバージョン |
---|---|
5.0.0 - 5.0.2 | |
5.0.0 - 5.0.2 | |
5.0.0 - 5.0.14(ARM64 または POWER システム アーキテクチャ) | |
5.0.2 - 5.0.17(Ops Manager または Cloud Manager クラスターの増分バックアップ) | |
5.0.0 - 5.0.1 | |
5.0.0 - 5.0.21 | |
5.0.0 - 5.0.10 | |
5.0.0 - 5.0.23 | |
5.0.6 - 5.0.21(metaField 埋め込みオブジェクトでシャーディングされた時系列コレクション) | |
5.0.0 - 5.0.24 |
5.0.30 - 10 月24 、 2024
重要
null バイトの不適切な中性化により、 MongoDB Serverでバッファのオーバー読み取りが発生する可能性があります
より前のMongoDB5.0 5.0.30では、承認されたユーザーは、 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でバッファのオーバー読み取りが発生する可能性があります
5.0.29 - 9 月30 、 2024
重要
CSFLE および Queryable Encryption の自己検索で、暗号化ではなくプレーンテキストとしてサブパイプラインの値が送信されることがある問題を修正します
CVE-2024-80135.05.0.28により、 以前のMongoDB では、特定の複雑な自己参照 サブパイプラインのクエリ分析でバグが発生し、暗号化された$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 : 機密情報のクリアテキスト送信
サーバー -96254CSFLE およびクエリ可能な暗号化の自己検索では、サブパイプライン内の値の暗号化に失敗する可能性があります。
SERVER-59831 WTUniqueIndex::_insert ではセカンダリが DupsAllowed=true で渡すことを想定しています
SERVER-76777 インデックス構築の外部中止と自己中止の間でデッドロックが発生する
SERVER-88750 挿入、アップデート、findAndModify、bulkWrite に「bypassEmptyTsReplacement」パラメータを追加しました
SERVER-91223 $log で小数 の誤った計算が行われる128
WT-8771 オーバーフロー アイテムを含むダーティページへのチェックポイントのクリーンアップ
5.0.28 - 7 月15 、 2024
SERVER-63198 シャットダウンコマンドがハングしないようになりました
SERVER-90747 プラン列挙型の空のパスを持つ $elemMatch を正しく処理します
SERVER-91362 パフォーマンス:JavaScript キャッシュされた JsExecution が存在する場合、 の「スコープ」オブジェクトをコピーしないでください
SERVER-91562 [5 .0 ]IndexDescriptor::completeIndexOptions は、ユニーク/スパースを一意な:false/sparse:false と同一ではないとして扱います。
WT-10807 ツリーウォークの一部としてメモリ内の削除されたページをスキップする
5.0.27 - Jun 04, 2024
SERVER-78556 internalInsertMaxBatchSize のデフォルトを 64 に戻します
SERVER-79637 Typescript相関述語を使用した 外部コレクションの $lookup でクエリ結果が不正確となる
サーバー -80363: wtimeout が設定されている場合、サーバーでデフォルトの writeConcern が無視されます。
SERVER-86474 $set : { foo: Timestamp(0 ,0 ) } は正しくレプリケーションされません
SERVER-86648 再開可能なインデックスビルドのソーターファイルはシャットダウン時に fsync されない
5.0.26 - 3月は26と2024
SERVER-68128 コマンド応答の生成中に例外がスローされると、ネットワーク エラーが発生
SERVER-72703 $out の DB ロックを MODE_IX にダウングレード
SERVER-83602 $or -> $in MatchExpression の書き換えでは、別の $or に直接ネストされた $or が生成されないはず
SERVER-86717 再シャーディングでは、ユーザーが提供したゾーン範囲に $ プレフィックス付きフィールドが含まれないことを検証する必要があります。
WT-11062 同時アクセスを可能にするために参照アドレスを安全に解放
5.0.25 - Feb 28, 2024
重要
MongoDB Server が信頼できない接続が成功する可能性があることに対する修正
CVE- 2024 - 1351により、 5.0.25以前の MongoDB 5.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-64444 listIndexes は、 より前の無効なノードでは失敗します。50アップグレード後のインデックス仕様
SERVER-82353 movePrimary が同時に実行されると、マルチドキュメントトランザクションでドキュメントが失われる可能性あり
SERVER-83564 プロセス フィールドが config.locks でインデックスされていることを確認
SERVER- バランサーは、ドレイン85419 中に適切な受信者が見つからない場合にログを破損します。
WT-10017 安定した状態へのロールバックの最後に不安定になった履歴バージョンを削除する
5.0.24 - Jan 18, 2024
SERVER-50792 shardCollection/refineCollectionShardKey のシャードキー インデックスが見つからない場合に、より有用なエラーを返す
SERVER-77506 シャーディングされたマルチドキュメントトランザクションでは、データと ShardVersion が一致しない可能性があります。
SERVER-81878 startupRecoveryForRestore が正常に実行されない可能性あり
SERVER-83091 $or クエリはプラン列挙中に無限ループを引き起こす可能性あり
WT-7929 チェックポイント中の FTDC ストールを回避するための解決法を調査すること
5.0.23 - 2023 年 11 月 27 日
SERVER-78108 POS インターフェースはシャットダウン状態を公開する必要があります
SERVER-78115 シャード プライマリは、設定サーバーからの新しいルーティング情報を使用する前に、過半数の書き込みをコミットする必要あり
SERVER-83150 Document::shred() はドキュメント メタデータをコピーしません
WT-11564 チェックポイントに存在する場合にのみ最新のトランザクション値を読み取るように RTS を修正
WT-11602 アプリケーションからの予想されるエビクション失敗を非表示にし、エラーが発生した場合はロールバックしない
5.0.22 - 2023 年 10 月 26 日
SERVER-68548 MongoDB Shell バージョン4 。4 。15-- quiet フラグであるにもかかわらず API メッセージのログ記録
SERVER-80021 double と string の間で $convert の正しくラウンドトリップを作成します
SERVER-80703 MigrationDestinationManager でルーティング テーブルのトラバースを避ける
SERVER-81106 受信者シャードは、クローンフェーズを開始する前にコレクション バージョンがローカルに保存されるのを待たない
WT-11064 アップデートの廃止チェックの一環として、グローバルに表示されるトゥームストーンをスキップすること
5.0.21 - 2023 年 9 月 12 日
SERVER-60466 addShard の実行前に、署名された $clusterTimes をレプリカセット --shardsvrs にゴシップするドライバーをサポートします。
SERVER-71627 キャッシュされたコレクション ルート情報を更新すると、100万チャンクのクラスターですべてのクライアントリクエストが著しくブロックされる
SERVER-78813 lastCommited optime が null の消費カーソルでは、コミット ポイントの伝達が無期限に失敗する
WT-10759 調整中に履歴保存ページの強制削除を再試行しないこと
WT-11051 集計タイムスタンプ検証における最新の耐久性がある開始タイムスタンプの比較を修正
5.0.20 - Aug 14, 2023
SERVER-74954 $ が含まれている場合、または $elemMatch の追加条件を書き換えた場合、結果が不正確になる
SERVER-78813 lastCommited optime が null の消費カーソルでは、コミット ポイントの伝達が無期限に失敗する
SERVER-79136 時系列のメタフィールドでの $match + $group のクエリ結果が正しくありません
WT-10449 履歴ストアに書き込むアップデートがない場合、アップデートチェーンを保存しないこと
WT-11031 チェックポイントに時間ウィンドウ情報がないテーブルをスキップするように RTS を修正
5.0.19 - 2023 年 7 月 13 日
SERVER-71985 DuplicateKey エラー発生時に時系列挿入を自動的に再試行する
SERVER-74551 mongo 5.0 へのアップグレード後に、findAndModify 中に WriteConflictException が警告として不必要にログに記録さる
SERVER-77018 dbStats と 2 つのインデックス構築のデッドロック
SERVER-78126 特定の種類の入力の場合、 mongo::Value() は常に同じ結果にハッシュします。
WT-10253 セッション ダンプとセッション カーソル スイープの実行頻度が増えました
5.0.18 - 2023 年 5 月 18 日
修正された問題:
SERVER-48196 timelib を最新のものにアップグレードし、組み込みのタイムゾーン ファイルを最新の状態に更新します
SERVER-54150 安定したチェックポイントからの回復は、oplog アプリケーションの障害時に実行される必要あり
SERVER-57056 INFO メッセージの Syslog 重大度が誤って設定される
SERVER-72686 時系列コレクションの $collStats agg ステージのサポートを追加
WT-10551 増分バックアップでは変更されたブロックが省略される場合があります
5.0.17 - Apr 27, 2023
修正された問題:
SERVER-73229 論理的なセッション キャッシュの更新では、セッション ドキュメントの更新による書込みエラーが無視されるため、カーソルは早期に強制終了されます
SERVER-74647 シャーディング状態マシンの作成は中断された後に再試行する必要があります
SERVER-75261 "listCollections" コマンドが BSONObjectTooLarge エラーで失敗
SERVER-75431 シャーディングされたクラスター内のパス名変更時にプライマリ DB のベスト エフォート チェックを削除または修正
SERVER-76098 $search と単純ではない照合を含むクエリを許可
5.0.16 - Apr 10, 2023
修正された問題:
SERVER-61909 多数のインデックスエントリを持つドキュメントの挿入または削除がハングする
SERVER-73822 時系列 $group の書き換えでは特定のアキュムレータが無視されます
SERVER-74345 mongodb-org-server 4.4.19、5.0.15、6.0.5 は、古いバージョン(Debian、RPM パッケージ)からアップグレードした後に起動しない
SERVER-74501 MigrationBatchFetcher/Inserter の完了依存を修正し、余計なクリーンアップ スレッドが生成されないようにした
SERVER-75205 すべての読み取りチケットが使い果たされた後に、ステップダウンと復元ロックの間でデッドロックが発生する
5.0.15 - Feb 27, 2023
修正された問題:
SERVER-54900 ネットワーク呼び出しをブロックすると、同期ソースの解決が無期限に遅延する可能性があります
SERVER-72416 find と findAndModify プロジェクション コードはコレクション レベルの照合を尊重しない
SERVER-71759 dataSize コマンドは生成されません
SERVER-72222 mapReduce で single reduce が最適化されている場合、マージングの結果シャードされたクラスターが作成されると失敗します
WT-9268 履歴保存レコードの削除を調整まで遅らせる
5.0.14 - 2022 年 11 月 21 日
修正された問題:
SERVER-68477 expireAfterSeconds TTL インデックス パラメーターの NaN 処理を改善
SERVER-66289 $out が v で BSONObj サイズ5 0エラーを誤ってスローします。 。8
SERVER-61185 一意なインデックス検索には prefix_search を使用すること
SERVER-68115 「elemMatchRootLength > 」不変 のバグ修正0trigger
SERVER-68139 プロジェクション ソートが 100 MB より大きい場合、再シャーディング コマンドは失敗
5.0.13 - 2022 年 9 月 29 日
修正された問題:
SERVER- デフォルトで69611 -ffp-contract=op コンパイラー オプションを設定する
SERVER-69220 refineCollectionShardKey により、現在のシャードキー フィールドを範囲ベースとハッシュ値の間で切り替えることができるため、データの不整合が発生
SERVER- oplog アプライアンスが oplog フェッチに追いつくことが 67650ない 場合、リシャーディング受信者は retainOperationTime EstimatedSecs= を返すことができます。0
SERVER-68094 カスタム生成された _id での再シャーディングは失敗し、プロジェクション エラーが発生します
WT-9870 リカバリ中に最も古いタイムスタンプが更新されるたびに、固定されたタイムスタンプの更新を修正しました
5.0.12 - 2022 年 9 月 5 日
修正された問題:
SERVER-68925 起動時にチェックテーブルログ設定を再導入する(SERVER-43664 を元に戻す)
SERVER-63852 getThreadName() はクラッシュしないようにしてください
SERVER-60958 ステップダウン イベント発生時に、チャンク移行においてサーバーがハングしないようになりました
SERVER-65382 AutoSplitVector は、シャードキー フィールドの順序付けに clientReadable を使用しないでください。
SERVER-63843 同期シグナル ハンドラーで再帰的な doLog を許可しない
5.0.11 - Aug 19, 2022
修正された問題:
SERVER- エントリの68511 movePrimary
config.databases
更新では、ドット フィールド表記を使用する必要がありますSERVER-61321 テキスト インデックス バージョン の大きな値または NaN 値の処理を改善しました
SERVER- 地理インデックス60607 バージョン の大きな値または NaN 値の処理を改善しました
SERVER-68628 プライマリ フェイルオーバー後に失敗した再シャーディング操作を再試行すると、サーバーのクラッシュや書き込みの損失につながる可能性あり
SERVER-68522 5を防ぎます。0fCV 4以降のバイナリー。 TTL インデックスの構成に誤りが4
WT-9500 HSアップデートのキー/値のタイムスタンプではなく、セル時間枠を使用するようにRTSを修正
5.0.10 - 2022 年 7 月 29 日
修正された問題:
SERVER-66418 string 順序の前提条件により、依存関係分析中に無効なプロジェクションが作成されました
SERVER-65821 コミット/中止の決定が永続的でなかったトランザクションが準備された場合、setFCV 中にデッドロックが発生する
SERVER-65131 便宜的読み取りターゲットを無効にします(ヘッジされた読み取りを除く)
SERVER- PC トランザクション後にサーバー 63971パラメータをデフォルトで読み取り、書込み (write) の動作に変更します2
SERVER-66433 重複する範囲の削除が完了するのを待機しているバックポートの期限が より前に完了するのを待機しています。51バージョン
5.0.9 - 2022 年 5 月 31 日
修正された問題:
SERVER-65636 ホストごとの LDAP 接続数の制限を廃止
SERVER-65137 生成後にコレクションを更新するときに名前空間の変更を検出するようになりました
SERVER-64822 空のコレクションをシャーディングするとクリティカル セクションの解放が素早すぎる
SERVER-62175 Mongos が _parseCommand で中断されたコマンドに RetryableWrite エラー ラベルの添付に失敗
WT-9096 キーが存在しない場合に、間違ったキーと値を返す近くの検索を修正しました
5.0.8 - Apr 25, 2022
修正された問題:
SERVER-63531 commitQuorum に buildIndexes:false ノードが誤って含まれ、エラー メッセージが投票ノードのみが資格があると誤って表示
SERVER-633871 StreamingCursor は、WiredTiger バックアップカーソルから取得された順序でバックアップ ブロックを返す必要があります
SERVER-62229 restoreFromOplogAsStandalone=true 中にインデックス ビルド エントリーを適用する際の不整合を修正しました
WT-8924 行ストアで競合をチェックするときに、挿入リストがある場合は、ディスク 時間枠で をチェックしないようになりました
5.0.7 - Apr 11, 2022
修正された問題:
SERVER-64517 ReconfigableAtlas App Services が起動時に適切に回復されない
SERVER-64403 SORT_MERGE 照合を使用してクエリを検索すると、欠落しているソート属性がエンコードされます
SERVER-63742 シャード内のデフォルトのトポロジー時間がシャード レジストリの無限更新につながる可能性あり
SERVER- ホストメモリ制限チェックは60412 cgroups v を尊重しない2
WT-7922 欠落している WiredTiger バージョン ファイルの処理
5.0.6 - Jan 31, 2022
修正された問題:
WT-8395 4からのアップグレード後にデータの不整合。4 。3と4 。 4 。 4から4 。 4 。 8 + と5 。 0 。 2 +
SERVER-62245 MigrationRecovery では、1 つの移行のみが回復する必要があると想定してはなりません
SERVER-61427 一意なインデックスのビルドでは、誤った重複が多数チェックされるため、コミット時に可用性が失われる可能性があります
SERVER-61194 大まかな粒度で時系列バケット OID の再利用を防ぐ
SERVER-60310 OCSP 応答の検証では、関連性のない証明書のステータスを考慮しないでください。
5.0.5 - 2021 年 12 月 6 日
修正された問題:
SERVER-61483 リシャーディング コーディネーターがステップアップの中止決定を回復せず、成功として操作をコミットしようとすると、データの不整合が発生します。
SERVER- Atlas59858 スレッドでスケジュールされたタスクの観察可能性を追加
SERVER-51329 mongos サーバーをシャットダウンするときに予期しない再試行できないエラーが発生しました
WT-8163 チェックポイントのクリーンアップを実現するために、より多くのエビクションシナリオを検討してください
WT-7912 キー範囲がページ間で分裂するシナリオを処理するために、プレフィックス検索のほぼ最適化を修正します。
5.0.4 - 2021 年 11 月 15 日
修正された問題:
SERVER- X60326 証明書に空のサブジェクト名がある場合、Windows Server の起動に失敗509
SERVER-59876 Egress 接続の確立中に libcrypto.so からの戻りが大幅に遅延する
SERVER-59456 LDAPReader スレッドプールを起動する
SERVER-59226 中断なしとしてマークされたプロファイル セッションで降格したときにデッドロックが発生する
SERVER-59074 oplog の可視性を設定/待機するためだけにストレージ チケットを取得しないでください
5.0.3 - 2021 年 9 月 21 日
修正された問題:
SERVER-57667 : 再シャーディングのコレクションクローンパイプラインの処理速度を向上させます
SERVER-57630 : Ubuntu18 04で SSL_OP_NO_REN後に有効にするOpenSSL に対して実行する場合は1 です。1 。1
WT-8005 : 履歴保存のエントリが未解決のままになる可能性のある準備コミットのバグを修正
WT-7995 : チェックポイントの可視性を超えることのできない 可視性を修正Go
WT-7984 : チェックポイントによってデータのページが省略される可能性があるバグを修正しました
5.0.2 - Aug 4, 2021
修正された問題:
SERVER-58936 : 一意なインデックス制約は強制されない可能性があります
SERVER-57756 : 同時ステップダウンとトランザクション oplog エントリの適用との間の競合
SERVER-54729 : MongoDB Enterprise Debian/Ubuntu2 パッケージは liblasl - モジュール とliblassl2 - モジュールを使用する際に依存する必要があります。
SERVER-47372 : コレクションが削除された後も config.cache コレクションは残ります
WT-6729 : 安定版のアクティブなトランザクション チェックへのロールバックを実行する前に、休止処理を実行します
5.0.1 - 2021 年 7 月 22 日
修正された問題:
SERVER-58489 : ビューとして重複する名前を使用すると、コレクション作成が無限の writeConflictRetry ループになりました。
SERVER-58171 : 時系列の粒度を変更してもビュー定義は更新されない
5.0.0 - 2021 年 7 月 13 日
このページの残りの部分に、5.0.0 リリースノートを記載します。
時系列コレクション
MongoDB 5.0 では、一定期間にわたる測定値のシーケンスを効率的にストアする時系列コレクションが導入されています。時系列データを時系列コレクションにストアすると、通常のコレクションと比較して、クエリの効率が向上し、データやインデックスのディスク使用量が削減されます。
集計
新しい集計演算子
MongoDB 5.0 では、次の集計演算子が導入されています。
演算子 | 説明 |
---|---|
| |
指定された時間単位数の分だけ Date() オブジェクトを増加させます。 | |
2 つの日付の差を返します。 | |
指定された時間単位数の分だけ Date() オブジェクトを減少させます。 | |
日付を切り捨てます。 | |
指定されたレートでパイプラインからドキュメントを確率的に選択するための $sampleRate メソッドを追加します。 | |
ドキュメント内の指定したフィールドを追加、更新、または削除します。 $setField を使用すると、名前にピリオド( . )が含まれるフィールドやドル記号( $ )で始まるフィールドを追加、更新、または削除できます。 | |
ウィンドウオペレーター
MongoDB 5.0 では、$setWindowFields
のパイプライン ステージが導入され、ウィンドウと呼ばれるコレクション内の指定された範囲のドキュメントに対して操作を実行できるようになりました。操作は、選択したウィンドウ演算子に基づいて結果を返します。
たとえば、$setWindowFields
ステージを使用して以下を出力できます。
コレクション内の 2 つのドキュメント間の売上の差
売上ランキング
累計販売合計
データを外部データベースにエクスポートせずに、複雑な時系列情報の分析
全般的な集計の改善
$expr
演算子: 比較演算子はインデックスを使用
MongoDB 5.0 以降では、$expr
演算子内に配置された $eq
、$lt
、$lte
、$gt
、$gte
の演算子で、インデックスを使用してパフォーマンスを向上できます。
$ifNull
式は複数の入力式を受け入れ
MongoDB 5.0 以降では、置換式を返す前に、$ifNull
式に複数の入力式を指定できます。
let
集計オプション
MongoDB 5.0 以降では、aggregate
コマンドと db.collection.aggregate()
ヘルパー メソッドで、集計パイプラインの他の場所で使用できる変数のリストを指定するための let
オプションが追加されました。これにより、変数をクエリテキストから分離して、コマンドの読みやすさを向上させることができます。
$lookup
ステージ: 簡潔な相関サブクエリ
MongoDB 5.0 以降では、集計パイプラインの $lookup
ステージで、コレクション間の結合を改善する簡潔な相関サブクエリがサポートされます。
$lookup
ステージ: 相関のないサブクエリ
MongoDB 5.0 以降では、$lookup
に $sample
ステージ、$sampleRate
演算子、または $rand
演算子を含む、パイプライン ステージ内の相関のないサブクエリの場合、繰り返される場合はサブクエリが常に再度実行されます。以前は、サブクエリの出力サイズに応じて、サブクエリの出力がキャッシュされるか、サブクエリが再度実行されていました。
「$lookup
を使用して非相関サブクエリを実行する」を参照してください。
$sort
ステージ: パフォーマンスの改善
MongoDB 5.0 以降では、クエリオプティマイザが $project
ステージの結果を $sort
ステージにプッシュダウンします。その結果、$sort
操作で project
ステージで使用すると必要な RAM が少なくなり、Sort exceeded memory limit
エラーを回避できます。
監査
ランタイム監査フィルター構成
MongoDB 5.0 では、実行時に監査フィルターを構成する機能が追加されました。
演算子 | 説明 |
---|---|
監査設定をチェックするためのポーリング間隔を定義します。 | |
全般的な監査の更新
MongoDB 5.0 以降:
システムイベント監査には次の機能があります。
新しい監査メッセージ タイプは、clientMetadata、directAuthMutation、logout、startup。
これらの既存の監査メッセージ タイプ用の追加情報とロギングシナリオは、authCheck、authenticate、createCollection、 createIndex、dropCollection。
セカンダリでの DDL 操作監査が変更されました。「監査イベントとフィルター」を参照してください。
上限付きコレクション
上限付きコレクションの削除がセカンダリに複製される
MongoDB 5.0 以降では、レプリカセットの上限付きコレクションの暗黙の削除操作はプライマリによって処理され、セカンダリノードに複製されます。
上限付きコレクションで明示の削除が許可される
MongoDB 5.0.7 以降、削除メソッドを使用して、上限付きコレクションからドキュメントを削除できます。
変更ストリーム
変更イベントの出力
MongoDB 5.0 以降では、変更イベントに配列の切り捨てをレコードする updateDescription.truncatedArrays
フィールドが含まれます。
Indexes
部分インデックスの動作の変更
MongoDB 5.0 以降では、partialFilterExpression フィールドが同等のフィルターを表現しない限り、同じキー パターンを使用して複数の部分インデックスを作成できます。
MongoDB の以前のバージョンでは、異なる partialFilterExpressions で同じキー パターンを使用する場合、複数の部分インデックスを作成することはできません。
一意のスパース インデックスの動作の変更
MongoDB 5.0 以降、キー パターンが同じユニークスパースおよびユニーク非スパースインデックスを単一コレクションに混在させることができます。
「独自のスパース インデックスを作成」を参照してください
Ready
インデックス構築の進行中、 インデックスを削除できない
インデックス構築が進行中の場合、 db.collection.dropIndexes()
コマンドは準備完了インデックスを削除できません。
MongoDB のバージョン 4.4.0 ~ 4.4.4 では、バグのためこのロジックは当てはまりませんでした。
フォアグラウンド検証により、マルチキーのメタデータの不整合が修正される可能性あり
MongoDB 配置で実行すると、db.collection.validate()
は、スタンドアロン配置のマルチキー メタデータの不整合を修正しようとします。
インデックスと コマンドの削除geoHaystack
geoSearch
MongoDB 5.0 では、非推奨の geoHaystack
インデックスと geoSearch
コマンドが排除されます。代わりに、$geoNear
、またはサポートされている地理空間クエリ演算子のいずれかを使用した 2 d インデックスを使用してください。
MongoDB インスタンスを 5.0 にアップグレードし、featureCompatibilityVersion を5.0
に設定すると、既存の geoHaystack
インデックスがすべて削除されます。
新しいエラーメッセージ
db.collection.createIndex()
操作と db.collection.createIndexes()
操作では、オプションが誤って指定されている場合に新しいエラー メッセージが表示されます。
中断されたインデックス構築
インデックス構築中にレプリカセット内のノードが完全にシャットダウンまたはロールバックされた場合、インデックス構築の進行状況がディスクに保存されるようになりました。サーバーが再起動すると、インデックス作成は保存された位置から再開されます。
reIndex
動作の変化
MongoDB 5.0 以降では、reIndex
コマンドと db.collection.reIndex()
shell メソッドはスタンドアロン インスタンスでのみ実行できます。
削除されたコマンド
MongoDB 5.0 以降では、次のデータベースコマンドと mongo
シェルヘルパー メソッドが排除されます。
レプリカセット
非トランザクション読み取りの変更: config.transactions
MongoDB 5.0 以降では、次の読み取り保証(read concern)とオプションのある config.transactions
コレクションでは非トランザクションは読み取れません。
"majority"
と afterClusterTime オプションが設定されている因果整合性のあるセッション 内で
"majority"
MongoDB ドライバー と を使用する場合
hello
コマンド
MongoDB 5.0以降では、 isMaster
コマンドとdb.isMaster()
メソッドの代替として、 hello
コマンドとdb.hello()
メソッドが導入されました。 新しいトポロジー メトリクスconnections.exhaustHello
は、 connections
でこれを追跡します。
休止期間
MongoDB 5.0 以降では、mongod
と mongos
は休止期間に入り、シャットダウンする前に進行中のデータベース操作を完了できるようになります。
members[n]._id
値の制限が削除されました
MongoDB 5.0 以降では、members[n]._id
フィールドは、0
以上の任意の整数値にできます。以前は、この値は 0
から 255
までの整数に制限されていました。
enableMajorityReadConcern
が構成不可に
MongoDB 5.0 以降では、ストレージエンジンの改善により、enableMajorityReadConcern
と --enableMajorityReadConcern
は変更できなくなり、常にtrue
に設定されています。
MongoDB の以前のバージョンでは、enableMajorityReadConcern
と --enableMajorityReadConcern
を構成可能であり、これらを false
に設定して、ストレージ キャッシュの負荷が 3 つのノードからなるプライマリとセカンダリのアービタ(PSA)アーキテクチャで配置が固定されないようにできます。
3 ノードのプライマリセカンダリアービタ(PSA)アーキテクチャを使用している場合は、次の点を考慮してください。
セカンダリが使用できなくなったり遅延が発生したりすると、 書込み保証 (write concern
"majority"
によってパフォーマンスの問題が発生することがあります。 こうした問題を軽減するためのアドバイスについては、「自己管理型 PSA レプリカセットのパフォーマンスの問題の軽減 」を参照してください。グローバル デフォルト
"majority"
を使用しており、書込み保証 (write concern) が過半数のサイズより小さい場合、クエリは古い(完全には複製されていない)データを返すことがあります。
スレッド プール タイムアウト制御の拡張
MongoDB 5.0 以降では、新しい replWriterMinThreadCount
サーバー パラメーターを使用して、この最小値を超えるアイドル スレッドを閉じることができるようになりました。replWriterMinThreadCount
が replWriterThreadCount
未満の値に設定されている場合、replWriterMinThreadCount
を超えるアイドル スレッドはタイムアウトになります。
PSA レプリカセットの再構成
プライマリ セカンダリ アービター(PSA)レプリカセットを再構成する場合、または PSA アーキテクチャに変更する場合、場合によっては再構成を 2 段階の変更で実行する必要があります。 MongoDB 5.0では、両方のステップを実行するrs.reconfigForPSASet()
メソッドが導入されています。 ヘルパー メソッドを使用できない場合は、 自己管理型 PSA レプリカセットを安全に変更する の手順に従ってください。
同期ソースの再評価の制限
maxNumSyncSourceChangesPerHour
ノードが同期ソースの再評価を一時的に停止する前に、1 時間あたりに実行できる同期ソースの変更回数を決定します。このパラメーターは、同期ソースがない場合でも、ノードが別のノードからの同期を開始することを妨げるものではありません。
enableOverrideClusterChainingSetting
Server Parameter
MongoDB 5.0.2以降、 新しい サーバー パラメータをenableOverrideClusterChainingSetting
に設定すると、true
が settings.chainingAllowed
であってもセカンダリ メンバーは他の セカンダリfalse
メンバーからデータを複製できるようになります。
セキュリティ
オンライン証明書ローテーションのサポート
MongoDB 5.0 以降では、最初に実行中の mongod
または mongos
インスタンスを停止しなくても、次の TLS 証明書をオンデマンドでローテーションできるようになりました。
CRL (Certificate Revocation List) files
(Linux および Windows プラットフォーム上)
これらの証明書をローテーションするには、ファイルシステム上の証明書ファイルを更新済みのバージョンに置き換えてから、rotateCertificates
コマンドまたは db.rotateCertificates()
shell メソッドを使用して証明書ローテーションをトリガーします。
この方法で証明書をローテーションしても、ダウンタイムは発生しません。また、アクティブなリモート接続が切断されることもありません。
詳細については、「オンライン証明書のローテーション」を参照してください。
TLS 1.3 暗号スイートの設定サポート
MongoDB 5.0 では、TLS 1.3 暗号化を使用するときに OpenSSL が許可する、サポートされている暗号スイートの構成を有効にする opensslCipherSuiteConfig
パラメーターが導入されています。
TLS 接続 X509 証明書のスタートアップ警告
MongoDB 5.0 以降では、証明書にサブジェクト代替名属性が含まれていない場合、mongod
と mongos
で起動時の警告が発せられるようになっています。
以下のプラットフォームは、コモンネームの検証をサポートしていません。
iOS 13 以降
MacOS 10.15 以降
Go 1.15 以降
これらのプラットフォームを使用するクライアントは、CommonName 属性によって指定されているホスト名の x.509 証明書を使用する MongoDB サーバーに対して認証を行いません。
ApplyOps 特権アクション
MongoDB 5.0 では、dbAdminAnyDatabase
によって継承される applyOps
権限アクションが導入されました。
シャーディングされたクラスター
再シャーディング
理想的なシャードキーを使用すると、MongoDB は一般的なクエリ パターンにしながら、ドキュメントをクラスター全体に均等に分散できます。シャードキーが最適でないと、データ分散が不均等になるため、パフォーマンスやスケーリングの問題が発生する可能性があります。MongoDB 5.0 以降では、reshardCollection
コマンドを使用してコレクションのシャードキーを変更し、クラスター全体のデータの分散を変更できます。
currentOp
進行中の再シャーディング操作の報告
MongoDB 5.0 以降では、$currentOp
集計ステージ(および currentOp
コマンドと db.currentOp()
shell メソッド)に、再シャーディング コーディネーターとドナー シャードと受信者シャードの進行中の再シャーディング操作のステータスに関する追加情報が含まれるようになりました。
db.currentOp
メソッドに集計段階の追加 mongosh
MongoDB5.0 以降では、ヘルパー$currentOp
メソッド をdb.currentOp()
とともに実行するときにmongosh
集計ステージが使用されます。
mongos
/mongod
接続プール
MongoDB 5.0以降、 MongoDB は、 ShardingTaskExecutorPoolReplicaSetMatching
の新しいデフォルトとしてパラメータ オプション"automatic"
を追加します。 mongos
に設定すると、インスタンスは"matchPrimaryNode"
オプションに指定された動作に従います。 mongod
に設定すると、インスタンスは"disabled"
オプションに指定された動作に従います。
renameCollection
シャーディングされたコレクションと互換性あり
MongoDB 5.0 以降では、renameCollection
コマンドを使用してシャーディングされたコレクションの名前を変更できます。
シャーディングされたクラスター内のシャーディングされたコレクションまたはシャーディングされていないコレクションの名前を変更すると、ソース コレクションとターゲット コレクションだけがすべてのシャードでロックされます。ソース コレクションとターゲット コレクションでのその後の操作は、名前変更操作が完了するまで待つ必要があります。
movePrimary
操作中の書き込みに関するエラーメッセージ
MongoDB 5.0 以降では、movePrimary
コマンドを使用してシャーディングされたクラスターからシャードを除くと、元のシャードへの書き込みでエラー メッセージが生成されます。
チャンクの分割とマージの変更ログに所有シャードの表示
MongoDB5.0 以降、 分割 とconfig.changelog
マージ 操作の コレクション内のドキュメントにはowningShard
フィールドが含まれます。owningShard
フィールドには、分割またはマージされたチャンクを所有するシャードのshardId
が表示されます。
この owningShard
フィールドは、分割またはマージ操作が頻繁に発生するシャードを識別するのに役立ちます。
maxCatchUpPercentageBeforeBlockingWrites
Server Parameter
MongoDB5.0 以降では、転送されるチャンクの合計サイズ(MB maxCatchUpPercentageBeforeBlockingWrites
moveChunk
単位)と比較した場合、 操作中にまだ移行されていないデータの最大許可パーセンテージを指定するために、 を設定します。
このパラメーターは、以下の動作に影響を与える可能性があります。
moveChunk
手動で実行されるコマンド複数の
moveChunk
コマンドを自動的に実行してチャンクをシャード全体に均等に分散するロードバランサー機能。「シャーディングされたクラスター バランサー」を参照してください。
shell の変更
新しい MongoDB Shell: mongosh
MongoDB v 5.0ではmongo
shell は非推奨になりました。 置き換え shell はmongosh
です。 レガシーのmongo
shell は将来のリリースで削除される予定です。
MongoDB v 5.0 ではshellのパッケージも変更されています。詳細については、「インストール手順」を参照してください。
GCP および Azure KMS プロバイダーの shell サポート
MongoDB5.0以降、 とGoogle Cloud PlatformKMS は、Azure Key Vault mongosh
mongo
shellクライアント側フィールドレベル暗号化のKMS (KMS ) プロバイダーとして、 とレガシー の両方でサポートされています。
KMS を使用すると、クライアント側のフィールドレベルの暗号化ワークフローの一部として、データ暗号化キーを暗号化および復号化するのに使用される CMK(Customer Master Key)を一元的かつ安全に保存できます。
さらに、構成された KMS では、MongoDB Enterprise で使用する時に、データ フィールドについて CSFLE がドキュメントを復号化する方法を使用できます。
スナップショット
読み取り保証 (read concern) の延長サポート "snapshot"
MongoDB 5.0 以降では、"snapshot"
の読み取り保証 (read concern) で、プライマリおよびセカンダリのマルチドキュメントトランザクション以外の一部の読み取り操作で読み取り確認ができるようになりました。「長時間実行スナップショット クエリの実行」を参照してください。
minSnapshotHistoryWindowInSeconds
Server Parameter
MongoDB 5.0 以降では、minSnapshotHistoryWindowInSeconds
パラメーターを使用して、WiredTiger がスナップショット履歴を保持する期間を制御できます。
トランザクション
coordinateCommitReturnImmediatelyAfterPersistingDecision
Parameter
サーバー パラメーター coordinateCommitReturnImmediatelyAfterPersistingDecision
は、トランザクションをコミットする決定がクライアントに返されるタイミングを制御します。
このパラメーターは MongDB 5.0 で導入されたもので、デフォルト値はtrue
です。MongoDB 6.1 ではデフォルト値が false
に変更されています。
coordinateCommitReturnImmediatelyAfterPersistingDecision
が false
の場合、シャードトランザクションの調整役は、コミットの決定をクライアントに返す前に、すべてのノードがマルチドキュメントトランザクションのコミットを確認するまで待機します。
名称の変更
2022 年 2 月より、「Versioned API」の用語が「Stable API」に変更されました。この用語の変更によるコンセプトと機能についての変更はありません。
一般的な変更点
パイプライン ステージを使用するクエリの実行プラン統計$lookup
フィールド名における( )と( )の処理改善<a class=\" \" href=\" \" title=\" \"><svg xmlns=\" \" width=\" \" height=\" \" fill=\" \" viewbox=\" \" class=\" \" role=\" \" aria-label=\" \"><path fill=\" \" d=\"$
.
\"> <path fill=\" \" d=\" \">
MongoDB 5.0 では、($
)プレフィックスが付いているフィールド名や(.
)文字を含むフィールド名のサポートが強化されました。これらの文字を使用するデータソースの操作を容易にするために、データを保存するための検証ルールが更新されました。
クラスター全体のデフォルトの書込み保証 (write concern)
MongoDB 5.0 以降では、setDefaultRWConcern
コマンドを使用して CWWC(Cluster Wide Write Concern)を設定すると、書込み保証 (write concern) を設定解除できなくなります。
暗黙のデフォルト書込み保証 (write concern)
MongoDB 5.0 以降では、暗黙のデフォルト書込み保証 (write concern) は w: majority
です。ただし、アービタを含む配置については、特別な考慮事項があります。
レプリカセットの投票権の過半数は、投票ノードの半数に 1 を加え、端数を切り捨てた値です。データを保持する投票ノードの数が投票の過半数を超えない場合、デフォルトの書込み保証 (write concern) は
{ w: 1 }
になります。その他のすべてのシナリオでは、デフォルトの書込み保証 (write concern) は
{ w: "majority" }
です。
具体的には、MongoDB では次の式を使用して、デフォルトの書込み保証 (write concern)を決定します。
if [ (#arbiters > 0) AND (#non-arbiters <= majority(#voting-nodes)) ] defaultWriteConcern = { w: 1 } else defaultWriteConcern = { w: "majority" }
たとえば、次の配置とそれぞれのデフォルトの書込み保証 (write concern) について考えてみましょう。
Non-Arbiters | アービタ | 投票ノード | 投票ノードの過半数 | 暗黙のデフォルト書込み保証 (write concern) |
---|---|---|---|---|
2 | 1 | 3 | 2 | { w: 1 } |
4 | 1 | 5 | 3 | { w: "majority" } |
最初の例では、次のようになります。
投票ノードは合計 3 つあり、非アービタ ノードが 2 つ、アービタ ノードが 1 つです。
投票ノードの過半数(1 に 3 の半分を足し、切り捨てた値)は 2 です。
非アービタの数 (2) は、投票ノードの過半数 (2) と等しく、暗黙の書込み保証 (write concern)
{ w: 1 }
になります。
2 番目の例では、次のようになります。
投票ノードは合計 5 つあり、非アービタ ノードが 4 つ、アービタ ノードが 1 つあります。
投票ノードの過半数(1 に 5 の半分を足し、切り捨てた値)は 3 です。
非アービタ数 (4) が投票ノードの過半数(3) よりも多いため、暗黙の書込み保証 (write concern)が
{ w: "majority" }
になります。
{ w: "majority" }
のデフォルトの書込み保証 (write concern) は、選挙時やレプリカセット ノードが使用できなくなった場合に、より強力な耐久性保証を提供します。
mongosShutdownTimeoutMillisForSignaledShutdown
Parameter
MongoDB 5.0 以降、新しいパラメーター mongosShutdownTimeoutMillisForSignaledShutdown
は、mongos
のシャットダウンを開始する前に、進行中のデータベース操作が完了するまで待機する時間をミリ秒単位で指定します。
設定可能なzstd
圧縮レベル
MongoDB 5.0 では、zstdCompressionLevel
構成ファイルオプションが導入され、blockCompressor
がzstd
に設定されている場合に圧縮レベルを設定できます。
ロックフリーの読み取り操作
MongoDB 5.0 以降では、別の操作がコレクションに対して排他的(X)書込みロック(write lock)を保持している場合、次の読み取り操作はブロックされません。
コレクションに書き込む場合、mapReduce
と aggregate
は、意向排他(IX)ロックを保持します。そのため、コレクションに対して排他 X ロックがすでに保持されている場合、 mapReduce
および aggregate
書き込み操作はブロックされます。
スキーマ検証の失敗の説明
MongoDB 5.0 では、ドキュメントがスキーマ検証に失敗した場合、詳細な説明が追加されます。
コマンドの修復オプションvalidate
MongoDB 5.0 以降では、validate
コマンドと db.collection.validate()
ヘルパー メソッドに、不整合のあるコレクションを修復するための新しい修復オプションが追加されました。
validate
コマンドと db.collection.validate()
ヘルパー メソッドも、コレクションが修復された場合は true
となる新しい repaired
ブール値を返します。
validate
コマンドによるドキュメント スキーマ違反の報告
MongoDB 5.0 以降では、validate
と db.collection.validate()
がコレクション内のドキュメントを検証します。コマンドは、スキーマ検証ルールに違反しているかどうかを報告します。
修復オプション mongod
MongoDB 5.0 以降では、mongod
の --repair
オプションにより、コレクションが検証され、不整合が検出され、可能であれば修正されるため、インデックスの再構築を回避できます。「用途と制限の --repair
オプション」を参照してください。
corruptRecords
検証出力のフィールド
MongoDB 5.0 以降では、validate
コマンドと db.collection.validate()
ヘルパー メソッドは、破損したドキュメントの RecordId
値の配列を含む新しい corruptRecords
フィールドを返します。
maxValidateMemoryUsageMB
Server Parameter
MongoDB 5.0以降、 setParameter
コマンドに新たに追加されたmaxValidateMemoryUsageMB
パラメーターでは、 validate
コマンドの最大メモリ使用量を設定します。
findChunksOnConfigTimeoutMS
Server Parameter
MongoDB 5.0 以降では、findChunksOnConfigTimeoutMS
パラメーターを使用して、chunks
での検索操作のタイムアウトを変更できます。
データベースプロファイラーfilter
オプション
MongoDB 5.0 以降では、データベースプロファイラーの filter
オプションを設定して、どの操作をプロファイルしてログに記録するかを決定できます。slowms
プロファイラー オプションと sampleRate
プロファイラー オプションの代わりに filter
式を使用できます。
次を参照してください。
データベースプロファイラー設定の変更のログへの記録
MongoDB 5.0以降では、profile
コマンドまたはdb.setProfilingLevel()
ラッパー メソッドを使用してデータベースプロファイラーlevel
、 slowms
、 sampleRate
、またはfilter
に加えられた変更は、 log file
に記録されます。
サーバーログと監査ログの独立したログ ローテーション
MongoDB 5.0 以降では、監査するが有効になっている場合、logRotate
コマンドを使用してサーバー ログと監査ログを個別にローテーションできるようになりました。以前は、logRotate
は、2 つのログを一緒にローテーションしていました。
remote
低速操作ログのフィールド
MongoDB 5.0 以降では、低速操作ログ メッセージにクライアントの IP アドレスを指定する remote
フィールドが含まれます。
remoteOpWaitMillis
ログ フィールド
MongoDB 5.0 以降では、remoteOpWaitMillis ログ フィールドを使用して、シャードからの結果の待機時間を取得できます。
resolvedViews
ビューの低速クエリのログ フィールド
MongoDB 5.0 以降では、ビューの低速クエリのログ メッセージに、ビューの詳細を含む resolvedViews
フィールドが含まれるようになりました。
オプションを使用した変数の定義let
MongoDB 5.0 以降では、次のコマンドに変数のリストを定義する let
オプションが追加されました。これにより、変数をクエリテキストから分離して、コマンドの読みやすさを向上させることができます。
find
コマンドfindAndModify
コマンドと対応するdb.collection.findAndModify()
シェルヘルパーupdate
コマンドと対応するdb.collection.update()
シェルヘルパーdelete
コマンドdb.collection.remove()
シェルヘルパー
update
コマンドには、変数のリストを定義する c
フィールドもあります。
デフォルトでユーザー名から LDAP DN へのマッピングをサポート
MongoDB 5.0 以降では、mongod
/ mongos
と mongoldap
の userToDNMapping
の構成ファイル オプションと、--ldapUserToDNMapping
のコマンドライン オプションが、空のマッピング ドキュメント(空の文字列または空の配列など)がオプションに指定されている場合、デフォルトで認証されたユーザー名を LDAP DN としてマッピングするようになりました。以前は、空のマッピング ドキュメントを提供するとマッピングが失敗していました。
追加のdbStats
空き容量の統計
MongoDB 5.0 以降では、dbStats
コマンドは次の追加統計を出力します。
コレクションに割り当てられた空き領域(
freeStorageSize
)インデックスに割り当てられた空き領域(
indexFreeStorageSize
)コレクションとインデックスに割り当てられた空き領域の合計(
totalFreeStorageSize
)
serverStatus
出力の変更
serverStatus
には、出力に次の新しいフィールドが含まれます。
- 集計メトリクス
- API バージョン メトリクス
- レプリケーション メトリクス
- 読み取り保証 (read concern) カウンター
readConcernCounters
は、クエリ操作(readConcernCounters
はopReadConcernCounters
に置き換えられます)によって指定された読み取り保証 (read concern) レベルを報告します。readConcernCounters
に次の新しいフィールドが追加されました。readConcernCounters.nonTransactionOps.noneInfo
readConcernCounters.transactionOps.noneInfo
- 書込み保証 (write concern) カウンター
opWriteConcernCounters
に次の新しいフィールドが追加されました。opWriteConcernCounters.insert.noneInfo
opWriteConcernCounters.update.noneInfo
opWriteConcernCounters.delete.noneInfo
- スレッド接続の数
connections.threaded
は、クライアントからの着信接続数を報告します。この接続は、クライアントのリクエストを処理するスレッドに割り当てられます。
- 再シャーディング統計
shardingStatistics.resharding
は、再シャーディング操作に関する統計を報告します。
- サービス実行メトリクス
network.serviceExecutors
は、クライアントのリクエストの操作を実行するサービス実行プログラムについて報告します。
- カーソル メトリクス
metrics.cursor.moreThanOneBatch
は、複数のバッチを返したカーソルの合計数を報告します(追加のバッチはgetMore
コマンドを使用して取得されます)。metrics.cursor.totalOpened
は、開かれたカーソルの総数を報告します。
- セキュリティ カウンター
security.authentication.saslSupportedMechsReceived
は、hello
リクエストに有効なhello.saslSupportedMechs
フィールドが含まれている回数を報告します。
- REPL
repl
に、レプリカセット プライマリでのみ実行されるサービスに関する追加情報を含む、primaryOnlyServices
ドキュメントが含まれるようになりました。
プラン キャッシュ デバッグ情報のサイズ制限
MongoDB 5.0以降では、すべてのコレクションのplan caches
の累積サイズが0.5より小さい場合にのみ、プラン キャッシュは完全なplan cache
エントリを保存します。 GB。 すべてのコレクションのplan caches
の累積サイズがこのしきい値を超えると、特定のデバッグ情報なしで追加のplan cache
エントリが保存されます。
plan cache
エントリの推定サイズ(バイト単位)は、$planCacheStats
の出力に表示されます。
セッション内で開かれた非アクティブなカーソルの閉包
MongoDB 5.0以降では、対応するクライアント セッション内で作成されたカーソルは、セッションがタイムアウトした場合、またはクライアントがカーソルを使い果たした場合に、対応するサーバー セッションがkillSessions
コマンドで終了すると閉じます。 「 mongosh
でのカーソルの反復 」を参照してください。
新しいvalidateDBMetadata
コマンド
MongoDB 5.0 では、validateDBMetadata
コマンドが追加されました。validateDBMetadata
コマンドは、データベースまたはコレクションの保存されたメタデータが特定の API バージョン内で有効であるかどうかを確認します。
パフォーマンスに関する考慮事項
暗黙のデフォルト書込み保証 (write concern)
MongoDB 5.0 では、デフォルトの書込み保証 (write concern) が { w: "majority" }
に変更されます。MongoDB では、レプリカセット ノードの計算された過半数がディスクへの書込み (write) を実行、永続化した後にのみ書込みを認識するため、新しいデフォルトの書込み保証 (write concern) はパフォーマンスに影響を与える可能性があります。
アプリケーションがパフォーマンスを重視した書込み (write) に依存している場合、データ耐久性の保証を犠牲にしてデフォルトの書込み保証 (write concern) を無効にできます。この設定を無効にするには、次のことを実行します。
パフォーマンスの重要な書き込みについては、個々の操作レベルで書込み保証 (write concern) を設定します。詳細については、「ドライバーのドキュメント」を参照してください。
デフォルトの書込み保証 (write concern) を明示的に設定するには、
setDefaultRWConcern
コマンドを使用します。
警告
書込み操作で{ w: 1 }
書込み保証が使用される場合、書込み操作が完了する前にプライマリが再起動すると、ロールバック ディレクトリはoplog hole後に送信された書込みを除外することがあります。
local
デフォルトの読み取り保証 (read concern)
MongoDB 5.0 以降では、プライマリとセカンダリに対する読み取り操作のデフォルトの読み取り保証 (read concern) レベルは "local"
です。
これにより、フィルターを使用するカウントクエリと対象クエリのレイテンシが大幅に増加する可能性があります。
setDefaultRWConcern
を使用してクラスター全体の読み取り保証 (read concern) を設定することで、この動作をオプトアウトできます。
スナップショット履歴の保持
MongoDB 5.0 では、minSnapshotHistoryWindowInSeconds
デフォルト値が 300
に引き上げられ、パフォーマンスに悪影響を及ぼす可能性があります。読み取り保証 (read concern) "snapshot"
を使用していない場合は、すべての mongod
インスタンスで minSnapshotHistoryWindowInSeconds
パラメータの値を 5
に減らすことができます。詳細については、「スナップショット履歴の保持」を参照してください。
注意
シャーディングされたクラスターを実行している場合は、コンフィギュレーションサーバーの minSnapshotHistoryWindowInSeconds
を変更しないでください。
プラットフォーム サポート
最小マイクロアーキテクチャ
MongoDB 5.0 では、以下の最小マイクロアーキテクチャ要件が導入されています。
CPU | サポートされる最小マイクロアーキテクチャ |
---|---|
Intel x86_64 | MongoDB 5.0 には、次のいずれかが必要です。
|
AMD x86_64 | MongoDB 5.0 には、AMD Bulldozer 以降が必要です。 |
ARM arm64 | MongoDB 5.0 には、ARMv8.2-A 以降が必要です。 |
MongoDB v5.0 は、これらの最小マイクロアーキテクチャ要件を満たさない x86_64
プラットフォームまたは arm64
プラットフォームではサポートされません。
詳細については、「x86_64 プラットフォームのサポート」を参照してください。
削除されたプラットフォーム
MongoDB 5.0 では、次のプラットフォームのサポートが除かれます。
MongoDB 5.0 でサポートされているプラットフォームとアーキテクチャの完全なリストについては、「プラットフォーム サポート」を参照してください。
互換性に影響する変更
一部の変更は互換性に影響を与える可能性があり、ユーザー側のアクションが必要になる場合があります。互換性の変更の詳細リストについては、「MongoDB 5.0 の互換性の変更」を参照してください。
アップグレード手順
重要
機能の互換性バージョン
MongoDB 4.4 配置から MongoDB 5.0 にアップグレードするには、4.4 配置で featureCompatibilityVersion
を 4.4
に設定する必要があります。バージョンの確認方法
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
MongoDB 5.0 にアップグレードするには、MongoDB 配置に固有のアップグレード手順を参照してください。
5.0へのアップグレードに関するガイダンスが必要な場合は、 MongoDB プロフェッショナル サービスがメジャー バージョン アップグレード サポートを提供して、MongoDB アプリケーションを中断することなくスムーズに移行できるようにします。
ダウングレードの検討事項
MongoDB は 1 つのバージョンのダウングレードのみをサポートします。現在のリリースより数バージョン前のリリースにダウングレードすることはできません。
たとえば、5.0 シリーズの配置を 4.4 シリーズにダウングレードできます。ただし、4.4 シリーズの配置から 4.2 シリーズへのさらなるダウングレードはサポートされていません。
ダウンロード
MongoDB 5. 0をダウンロードするには、MongoDB ダウンロードセンターにアクセスします。
既知の問題点
バージョン | 問題 | ステータス |
---|---|---|
5.0.0 | SERVER-58171 : 時系列コレクションの granularity パラメーターは、コレクションが作成された後は変更できません。 | 5.0.1 で修正済み |
5.0.0 | SERVER-58392 : リシャーディング操作が進行中の場合、バックアップまたは復元操作が成功しなくなる可能性があります。 | 5.0.3 で修正済み |
問題を報告する
問題を報告するには、MongoDB GitHub リポジトリで、MongoDB サーバーまたは関連プロジェクトのいずれかに対して JIRA チケットを提出する手順を参照してください。