Docs Menu
Docs Home
/
MongoDB マニュアル
/

MongoDB 5.0 のリリースノート

項目一覧

  • パッチ リリース
  • 時系列コレクション
  • 集計
  • 監査
  • 上限付きコレクション
  • 変更ストリーム
  • Indexes
  • 削除されたコマンド
  • レプリカセット
  • セキュリティ
  • シャーディングされたクラスター
  • shell の変更
  • スナップショット
  • トランザクション
  • 名称の変更
  • 一般的な変更点
  • パフォーマンスに関する考慮事項
  • プラットフォーム サポート
  • 互換性に影響する変更
  • アップグレード手順
  • ダウングレードの検討事項
  • ダウンロード
  • 既知の問題点
  • 問題を報告する

注意

2021 年 7 月 13 日リリースのMongoDB 5.0

警告

過去のリリース制限

以下の 重要な助言 は、一部の MongoDB の前のバージョンに影響します。 配置が重要な助言によって影響を受ける機能に依存している場合は、利用可能な最新のパッチ リリースにアップグレードしてください。

問題
影響を受けるバージョン
WT-7984
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

重要

CSFLE および Queryable Encryption の自己検索により、サブパイプラインに不正な値が送信される可能性があります

5.0.28より前の MongoDB 5.0 700} では、特定の複雑な自己参照 $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

  • SERVER-59831 WTUniqueIndex::_insert ではセカンダリが DupsAllowed=true で渡すことを想定しています

  • SERVER-69234 txn_reaver_decision_使用_recury_ルーター.js を誤ったシャード バージョン更新に対して堅牢に使用

  • SERVER-76777 インデックス構築の外部中止と自己中止の間でデッドロックが発生する

  • SERVER-88750 挿入、アップデート、findAndModify、bulkWrite に「bypassEmptyTsReplacement」パラメータを追加しました

  • WT-8771 オーバーフロー アイテムを含むダーティページへのチェックポイントのクリーンアップ

  • すべての Jira の課題は 5.0.29 で終了しました

  • 5.0.29 変更履歴

  • SERVER-63198 シャットダウンコマンドがハングしないようになりました

  • SERVER-90747 プラン列挙型の空のパスを持つ $elemMatch を正しく処理します

  • SERVER-91362 パフォーマンス:JavaScript キャッシュされた JsExecution が存在する場合、 の「スコープ」オブジェクトをコピーしないでください

  • SERVER-91562 [5 .0 ]IndexDescriptor::completeIndexOptions は、ユニーク/スパースを一意な:false/sparse:false と同一ではないとして扱います。

  • WT-10807 ツリーウォークの一部としてメモリ内の削除されたページをスキップする

  • すべての Jira の課題は 5.0.28 で終了しました

  • 5.0.28 変更履歴

  • SERVER-68128 コマンド応答の生成中に例外がスローされると、ネットワーク エラーが発生

  • SERVER-72703 $out の DB ロックを MODE_IX にダウングレード

  • SERVER-83602 $or -> $in MatchExpression の書き換えでは、別の $or に直接ネストされた $or が生成されないはず

  • SERVER-86717 再シャーディングでは、ユーザーが提供したゾーン範囲に $ プレフィックス付きフィールドが含まれないことを検証する必要があります。

  • WT-11062 同時アクセスを可能にするために参照アドレスを安全に解放

  • すべての Jira の課題は 5.0.26 で終了しました

  • 5.0.26 変更履歴

重要

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-50792 shardCollection/refineCollectionShardKey のシャードキー インデックスが見つからない場合に、より有用なエラーを返す

  • SERVER-77506 シャーディングされたマルチドキュメントトランザクションでは、データと ShardVersion が一致しない可能性があります。

  • SERVER-81878 startupRecoveryForRestore が正常に実行されない可能性あり

  • SERVER-83091 $or クエリはプラン列挙中に無限ループを引き起こす可能性あり

  • WT-7929 チェックポイント中の FTDC ストールを回避するための解決法を調査すること

  • すべての JIRA の課題は 5.0.24 で終了しました

  • 5.0.24 変更履歴

  • SERVER-78108 POS インターフェースはシャットダウン状態を公開する必要があります

  • SERVER-78115 シャード プライマリは、設定サーバーからの新しいルーティング情報を使用する前に、過半数の書き込みをコミットする必要あり

  • SERVER-83150 Document::shred() はドキュメント メタデータをコピーしません

  • WT-11564 チェックポイントに存在する場合にのみ最新のトランザクション値を読み取るように RTS を修正

  • WT-11602 アプリケーションからの予想されるエビクション失敗を非表示にし、エラーが発生した場合はロールバックしない

  • すべての JIRA の課題は 5.0.23 で終了しました

  • 5.0.23 変更履歴

  • SERVER-68548 MongoDB Shell バージョン4 。4 。15-- quiet フラグであるにもかかわらず API メッセージのログ記録

  • SERVER-80021 double と string の間で $convert の正しくラウンドトリップを作成します

  • SERVER-80703 MigrationDestinationManager でルーティング テーブルのトラバースを避ける

  • SERVER-81106 受信者シャードは、クローンフェーズを開始する前にコレクション バージョンがローカルに保存されるのを待たない

  • WT-11064 アップデートの廃止チェックの一環として、グローバルに表示されるトゥームストーンをスキップすること

  • すべての JIRA の課題は 5.0.22 で終了しました

  • 5.0.22 変更履歴

  • SERVER-60466 addShard の実行前に、署名された $clusterTimes をレプリカセット --shardsvrs にゴシップするドライバーをサポートします。

  • SERVER-71627 キャッシュされたコレクション ルート情報を更新すると、100万チャンクのクラスターですべてのクライアントリクエストが著しくブロックされる

  • SERVER-78813 lastCommited optime が null の消費カーソルでは、コミット ポイントの伝達が無期限に失敗する

  • WT-10759 調整中に履歴保存ページの強制削除を再試行しないこと

  • WT-11051 集計タイムスタンプ検証における最新の耐久性がある開始タイムスタンプの比較を修正

  • すべての JIRA の課題は 5.0.21 で終了しました

  • 5.0.21 変更履歴

  • SERVER-74954 $ が含まれている場合、または $elemMatch の追加条件を書き換えた場合、結果が不正確になる

  • SERVER-78813 lastCommited optime が null の消費カーソルでは、コミット ポイントの伝達が無期限に失敗する

  • SERVER-79136 時系列のメタフィールドでの $match + $group のクエリ結果が正しくありません

  • WT-10449 履歴ストアに書き込むアップデートがない場合、アップデートチェーンを保存しないこと

  • WT-11031 チェックポイントに時間ウィンドウ情報がないテーブルをスキップするように RTS を修正

  • すべての JIRA 課題は 5.0.20 で終了しました

  • 5.0.20 変更履歴

修正された問題:

修正された問題:

  • SERVER-73229 論理的なセッション キャッシュの更新では、セッション ドキュメントの更新による書込みエラーが無視されるため、カーソルは早期に強制終了されます

  • SERVER-74647 シャーディング状態マシンの作成は中断された後に再試行する必要があります

  • SERVER-75261 "listCollections" コマンドが BSONObjectTooLarge エラーで失敗

  • SERVER-75431 シャーディングされたクラスター内のパス名変更時にプライマリ DB のベスト エフォート チェックを削除または修正

  • SERVER-76098 $search と単純ではない照合を含むクエリを許可

  • すべての JIRA 課題は 5.0.17 で終了しました

  • 5.0.17 変更履歴

修正された問題:

  • 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 すべての読み取りチケットが使い果たされた後に、ステップダウンと復元ロックの間でデッドロックが発生する

  • すべての JIRA 課題は 5.0.16 で終了しました

  • 5.0.16 変更履歴

修正された問題:

修正された問題:

修正された問題:

  • SERVER- デフォルトで69611 -ffp-contract=op コンパイラー オプションを設定する

  • SERVER-69220 refineCollectionShardKey により、現在のシャードキー フィールドを範囲ベースとハッシュ値の間で切り替えることができるため、データの不整合が発生

  • SERVER- oplog アプライアンスが oplog フェッチに追いつくことが 67650ない 場合、リシャーディング受信者は retainOperationTime EstimatedSecs= を返すことができます。0

  • SERVER-68094 カスタム生成された _id での再シャーディングは失敗し、プロジェクション エラーが発生します

  • WT-9870 リカバリ中に最も古いタイムスタンプが更新されるたびに、固定されたタイムスタンプの更新を修正しました

  • すべての JIRA 課題は 5.0.13 で終了しました

  • 5.0.13 変更履歴

修正された問題:

修正された問題:

修正された問題:

  • SERVER-66418 string 順序の前提条件により、依存関係分析中に無効なプロジェクションが作成されました

  • SERVER-65821 コミット/中止の決定が永続的でなかったトランザクションが準備された場合、setFCV 中にデッドロックが発生する

  • SERVER-65131 便宜的読み取りターゲットを無効にします(ヘッジされた読み取りを除く)

  • SERVER- PC トランザクション後にサーバー 63971パラメータをデフォルトで読み取り、書込み (write) の動作に変更します2

  • SERVER-66433 重複する範囲の削除が完了するのを待機しているバックポートの期限が より前に完了するのを待機しています。51バージョン

  • すべての JIRA 課題は 5.0.10 で終了しました

  • 5.0.10 変更履歴

修正された問題:

修正された問題:

修正された問題:

修正された問題:

  • 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 応答の検証では、関連性のない証明書のステータスを考慮しないでください。

  • すべての JIRA 課題は 5.0.6 で終了しました

  • 5.0.6 変更履歴

修正された問題:

  • SERVER-61483 リシャーディング コーディネーターがステップアップの中止決定を回復せず、成功として操作をコミットしようとすると、データの不整合が発生します。

  • SERVER- Atlas59858 スレッドでスケジュールされたタスクの観察可能性を追加

  • SERVER-51329 mongos サーバーをシャットダウンするときに予期しない再試行できないエラーが発生しました

  • WT-8163 チェックポイントのクリーンアップを実現するために、より多くのエビクションシナリオを検討してください

  • WT-7912 キー範囲がページ間で分裂するシナリオを処理するために、プレフィックス検索のほぼ最適化を修正します。

  • すべての JIRA 課題は 5.0.5 で終了しました

  • 5.0.5 変更履歴

修正された問題:

修正された問題:

  • SERVER-57667 : 再シャーディングのコレクションクローンパイプラインの処理速度を向上させます

  • SERVER-57630 : Ubuntu18 04で SSL_OP_NO_REN後に有効にするOpenSSL に対して実行する場合は1 です。1 。1

  • WT-8005 : 履歴保存のエントリが未解決のままになる可能性のある準備コミットのバグを修正

  • WT-7995 : チェックポイントの可視性を超えることのできない 可視性を修正Go

  • WT-7984 : チェックポイントによってデータのページが省略される可能性があるバグを修正しました

  • すべての JIRA 課題は 5.0.3 で終了しました

  • 5.0.3 変更履歴

修正された問題:

  • SERVER-58936 : 一意なインデックス制約は強制されない可能性があります

  • SERVER-57756 : 同時ステップダウンとトランザクション oplog エントリの適用との間の競合

  • SERVER-54729 : MongoDB Enterprise Debian/Ubuntu2 パッケージは liblasl - モジュール とliblassl2 - モジュールを使用する際に依存する必要があります。

  • SERVER-47372 : コレクションが削除された後も config.cache コレクションは残ります

  • WT-6729 : 安定版のアクティブなトランザクション チェックへのロールバックを実行する前に、休止処理を実行します

  • すべての JIRA 課題は 5.0.2 で終了しました

  • 5.0.2 変更履歴

修正された問題:

このページの残りの部分に、5.0.0 リリースノートを記載します。

MongoDB 5.0 では、一定期間にわたる測定値のシーケンスを効率的にストアする時系列コレクションが導入されています。時系列データを時系列コレクションにストアすると、通常のコレクションと比較して、クエリの効率が向上し、データやインデックスのディスク使用量が削減されます。

MongoDB 5.0 では、次の集計演算子が導入されています。

演算子
説明

$count (aggregation accumulator) は、既存のパイプラインの $group (aggregation) ステージと新しい MongoDB 5.0 の $setWindowFields ステージで使用された場合、すべてのドキュメントの数を提供します。

$count (aggregation accumulator) は、$count (aggregation) パイプライン ステージとは異なります。

指定された時間単位数の分だけDateオブジェクトを増加させます。
2 つの日付の差を返します。
指定された時間単位数でDateオブジェクトを減算します。
日付を切り捨てます。
ドキュメントから指定したフィールドの値を返します。$getFieldを使用すると、名前にピリオド( . )が含まれるフィールドやドル記号( $ )で始まるフィールドの値を取得できます。
$randメソッドは、呼び出されるたびに 0 から 1 の間のランダムな浮動小数値を生成します。 新しい$sampleRate演算子は$randに基づいています。
指定されたレートでパイプラインからドキュメントを確率的に選択するための $sampleRate メソッドを追加します。
ドキュメント内の指定したフィールドを追加、更新、または削除します。$setFieldを使用すると、名前にピリオド( . )が含まれるフィールドやドル記号( $ )で始まるフィールドを追加、更新、または削除できます。
ドキュメント内の指定したフィールドを削除します。名前にピリオド(.)が含まれる名前付きフィールド、またはドル記号($)で始まる名前付きフィールドを削除するための $setField のエイリアス。

MongoDB 5.0 では、$setWindowFields のパイプライン ステージが導入され、ウィンドウと呼ばれるコレクション内の指定された範囲のドキュメントに対して操作を実行できるようになりました。操作は、選択したウィンドウ演算子に基づいて結果を返します。

たとえば、$setWindowFields ステージを使用して以下を出力できます。

  • コレクション内の 2 つのドキュメント間の売上の差

  • 売上ランキング

  • 累計販売合計

  • データを外部データベースにエクスポートせずに、複雑な時系列情報の分析

MongoDB 5.0 以降では、$expr 演算子内に配置された $eq$lt$lte$gt$gte の演算子で、インデックスを使用してパフォーマンスを向上できます。

MongoDB 5.0 以降では、置換式を返す前に、$ifNull 式に複数の入力式を指定できます。

MongoDB 5.0 以降では、aggregate コマンドと db.collection.aggregate() ヘルパー メソッドで、集計パイプラインの他の場所で使用できる変数のリストを指定するための let オプションが追加されました。これにより、変数をクエリテキストから分離して、コマンドの読みやすさを向上させることができます。

MongoDB 5.0 以降では、集計パイプラインの $lookup ステージで、コレクション間の結合を改善する簡潔な相関サブクエリがサポートされます。

MongoDB 5.0 以降では、$lookup$sample ステージ、$sampleRate 演算子、または $rand 演算子を含む、パイプライン ステージ内の相関のないサブクエリの場合、繰り返される場合はサブクエリが常に再度実行されます。以前は、サブクエリの出力サイズに応じて、サブクエリの出力がキャッシュされるか、サブクエリが再度実行されていました。

$lookup を使用して非相関サブクエリを実行する」を参照してください。

MongoDB 5.0 以降では、クエリオプティマイザ$project ステージの結果を $sort ステージにプッシュダウンします。その結果、$sort 操作で project ステージで使用すると必要な RAM が少なくなり、Sort exceeded memory limit エラーを回避できます。

MongoDB 5.0 では、実行時に監査フィルターを構成する機能が追加されました。

演算子
説明
監査設定をチェックするためのポーリング間隔を定義します。
mongodmongos から監査構成を取得します。
実行時に mongod インスタンスと mongos インスタンスの新しい監査構成を設定します。

MongoDB 5.0 以降:

MongoDB 5.0 以降では、レプリカセットの上限付きコレクション暗黙の削除操作はプライマリによって処理され、セカンダリノードに複製されます。

MongoDB 5.0.7 以降、削除メソッドを使用して、上限付きコレクションからドキュメントを削除できます。

MongoDB 5.0 以降では、変更イベントに配列の切り捨てをレコードする updateDescription.truncatedArrays フィールドが含まれます。

MongoDB 5.0 以降では、partialFilterExpression フィールドが同等のフィルターを表現しない限り、同じキー パターンを使用して複数の部分インデックスを作成できます。

MongoDB の以前のバージョンでは、異なる partialFilterExpressions で同じキー パターンを使用する場合、複数の部分インデックスを作成することはできません。

MongoDB 5.0 以降、キー パターンが同じユニークスパースおよびユニーク非スパースインデックスを単一コレクションに混在させることができます。

独自のスパース インデックスを作成」を参照してください

db.collection.dropIndexes() コマンドは、進行中のインデックス作成がある場合、ready インデックスを削除できません。

  • MongoDB のバージョン 4.4.0 ~ 4.4.4 では、バグのためこのロジックは当てはまりませんでした。

MongoDB 配置で実行すると、db.collection.validate() は、スタンドアロン配置のマルチキー メタデータの不整合を修正しようとします。

MongoDB 5.0 では、非推奨のgeoHaystackインデックスとgeoSearchコマンドが排除されます。 代わりに、 またはサポートされている$geoNear 地理空間クエリ演算子 のいずれかを使用した 2 d インデックス を使用してください。

MongoDB インスタンスを 5.0 にアップグレードし、featureCompatibilityVersion5.0 に設定すると、既存の geoHaystack インデックスがすべて削除されます。

db.collection.createIndex() 操作と db.collection.createIndexes() 操作では、オプションが誤って指定されている場合に新しいエラー メッセージが表示されます。

インデックス構築中にレプリカセット内のノードが完全にシャットダウンまたはロールバックされた場合、インデックス構築の進行状況がディスクに保存されるようになりました。サーバーが再起動すると、インデックス作成は保存された位置から再開されます。

MongoDB 5.0 以降では、reIndex コマンドと db.collection.reIndex() shell メソッドはスタンドアロン インスタンスでのみ実行できます。

MongoDB 5.0 以降では、次のデータベースコマンドと mongo シェルヘルパー メソッドが排除されます。

MongoDB 5.0 以降では、次の読み取り保証(read concern)とオプションのある config.transactions コレクションでは非トランザクションは読み取れません。

MongoDB 5.0以降では、 isMasterコマンドとdb.isMaster()メソッドの代替として、 helloコマンドとdb.hello()メソッドが導入されました。 新しいトポロジー メトリクスconnections.exhaustHelloは、 connectionsでこれを追跡します。

MongoDB 5.0 以降では、mongodmongos休止期間に入り、シャットダウンする前に進行中のデータベース操作を完了できるようになります。

MongoDB 5.0 以降では、members[n]._id フィールドは、0 以上の任意の整数値にできます。以前は、この値は 0 から 255 までの整数に制限されていました。

MongoDB 5.0 以降では、ストレージエンジンの改善により、enableMajorityReadConcern--enableMajorityReadConcern は変更できなくなり、常にtrue に設定されています。

MongoDB の以前のバージョンでは、enableMajorityReadConcern--enableMajorityReadConcern を構成可能であり、これらを false に設定して、ストレージ キャッシュの負荷が 3 つのノードからなるプライマリとセカンダリのアービタ(PSA)アーキテクチャで配置が固定されないようにできます。

3 ノードのプライマリセカンダリアービタ(PSA)アーキテクチャを使用している場合は、次の点を考慮してください。

MongoDB 5.0 以降では、新しい replWriterMinThreadCount サーバー パラメーターを使用して、この最小値を超えるアイドル スレッドを閉じることができるようになりました。replWriterMinThreadCountreplWriterThreadCount 未満の値に設定されている場合、replWriterMinThreadCount を超えるアイドル スレッドはタイムアウトになります。

プライマリ セカンダリ アービター(PSA)レプリカセットを再構成する場合、または PSA アーキテクチャに変更する場合、場合によっては再構成を 2 段階の変更で実行する必要があります。 MongoDB 5.0では、両方のステップを実行するrs.reconfigForPSASet()メソッドが導入されています。 ヘルパー メソッドを使用できない場合は、 自己管理型 PSA レプリカセットを安全に変更する の手順に従ってください。

maxNumSyncSourceChangesPerHour ノードが同期ソースの再評価を一時的に停止する前に、1 時間あたりに実行できる同期ソースの変更回数を決定します。このパラメーターは、同期ソースがない場合でも、ノードが別のノードからの同期を開始することを妨げるものではありません。

MongoDB 5.0.2以降、 新しい サーバー パラメータをenableOverrideClusterChainingSetting に設定すると、truesettings.chainingAllowedであってもセカンダリ メンバーは他の セカンダリfalse メンバーからデータを複製できるようになります。

MongoDB 5.0 以降では、最初に実行中の mongod または mongos インスタンスを停止しなくても、次の TLS 証明書をオンデマンドでローテーションできるようになりました。

これらの証明書をローテーションするには、ファイルシステム上の証明書ファイルを更新済みのバージョンに置き換えてから、rotateCertificates コマンドまたは db.rotateCertificates() shell メソッドを使用して証明書ローテーションをトリガーします。

この方法で証明書をローテーションしても、ダウンタイムは発生しません。また、アクティブなリモート接続が切断されることもありません。

詳細については、「オンライン証明書のローテーション」を参照してください。

MongoDB 5.0 では、TLS 1.3 暗号化を使用するときに OpenSSL が許可する、サポートされている暗号スイートの構成を有効にする opensslCipherSuiteConfig パラメーターが導入されています。

MongoDB 5.0 以降では、証明書にサブジェクト代替名属性が含まれていない場合、mongodmongos で起動時の警告が発せられるようになっています。

以下のプラットフォームは、コモンネームの検証をサポートしていません。

  • iOS 13 以降

  • MacOS 10.15 以降

  • Go 1.15 以降

これらのプラットフォームを使用するクライアントは、CommonName 属性によって指定されているホスト名の x.509 証明書を使用する MongoDB サーバーに対して認証を行いません。

MongoDB 5.0 では、dbAdminAnyDatabase によって継承される applyOps 権限アクションが導入されました。

この applyOps アクションにより、ユーザーはapplyOps データベースコマンドを実行できるようになります。

理想的なシャードキーを使用すると、MongoDB は一般的なクエリ パターンにしながら、ドキュメントをクラスター全体に均等に分散できます。シャードキーが最適でないと、データ分散が不均等になるため、パフォーマンスやスケーリングの問題が発生する可能性があります。MongoDB 5.0 以降では、reshardCollection コマンドを使用してコレクションのシャードキーを変更し、クラスター全体のデータの分散を変更できます。

MongoDB 5.0 以降では、$currentOp 集計ステージ(および currentOp コマンドと db.currentOp() shell メソッド)に、再シャーディング コーディネーターとドナー シャードと受信者シャードの進行中の再シャーディング操作のステータスに関する追加情報が含まれるようになりました。

MongoDB5.0 以降では、ヘルパー$currentOp メソッド をdb.currentOp() とともに実行するときにmongosh 集計ステージが使用されます。

MongoDB 5.0以降、 MongoDB は、 ShardingTaskExecutorPoolReplicaSetMatchingの新しいデフォルトとしてパラメータ オプション"automatic"を追加します。 mongosに設定すると、インスタンスは"matchPrimaryNode"オプションに指定された動作に従います。 mongodに設定すると、インスタンスは"disabled"オプションに指定された動作に従います。

MongoDB 5.0 以降では、renameCollection コマンドを使用してシャーディングされたコレクションの名前を変更できます。

シャーディングされたクラスター内のシャーディングされたコレクションまたはシャーディングされていないコレクションの名前を変更すると、ソース コレクションとターゲット コレクションだけがすべてのシャードでロックされます。ソース コレクションとターゲット コレクションでのその後の操作は、名前変更操作が完了するまで待つ必要があります。

MongoDB 5.0 以降では、movePrimary コマンドを使用してシャーディングされたクラスターからシャードを除くと、元のシャードへの書き込みでエラー メッセージが生成されます。

MongoDB5.0 以降、 分割config.changelog マージ 操作の コレクション内のドキュメントにはowningShard フィールドが含まれます。owningShardフィールドには、分割またはマージされたチャンクを所有するシャードのshardIdが表示されます。

この owningShard フィールドは、分割またはマージ操作が頻繁に発生するシャードを識別するのに役立ちます。

MongoDB5.0 以降では、転送されるチャンクの合計サイズ(MB maxCatchUpPercentageBeforeBlockingWritesmoveChunk単位)と比較した場合、 操作中にまだ移行されていないデータの最大許可パーセンテージを指定するために、 を設定します。

このパラメーターは、以下の動作に影響を与える可能性があります。

MongoDB v 5.0ではmongo shell は非推奨になりました。 置き換え shell はmongoshです。 レガシーのmongo shell は将来のリリースで削除される予定です。

MongoDB v 5.0 ではshellのパッケージも変更されています。詳細については、「インストール手順」を参照してください。

MongoDB5.0以降、 とGoogle Cloud PlatformKMS は、Azure Key Vault mongoshmongoshellクライアント側フィールドレベル暗号化のKMS (KMS ) プロバイダーとして、 とレガシー の両方でサポートされています。

KMS を使用すると、クライアント側のフィールドレベルの暗号化ワークフローの一部として、データ暗号化キーを暗号化および復号化するのに使用される CMK(Customer Master Key)を一元的かつ安全に保存できます。

さらに、構成された KMS では、MongoDB Enterprise で使用する時に、データ フィールドについて CSFLE がドキュメントを復号化する方法を使用できます。

詳しくは、「 mongosh を使用して KMS プロバイダーを構成する 」を参照してください。

MongoDB 5.0 以降では、"snapshot" の読み取り保証 (read concern) で、プライマリおよびセカンダリのマルチドキュメントトランザクション以外の一部の読み取り操作で読み取り確認ができるようになりました。「長時間実行スナップショット クエリの実行」を参照してください。

MongoDB 5.0 以降では、minSnapshotHistoryWindowInSeconds パラメーターを使用して、WiredTiger がスナップショット履歴を保持する期間を制御できます。

サーバー パラメーター coordinateCommitReturnImmediatelyAfterPersistingDecision は、トランザクションをコミットする決定がクライアントに返されるタイミングを制御します。

このパラメーターは MongDB 5.0 で導入されたもので、デフォルト値はtrueです。 MongoDB 6.0 と 5.0.10 ではデフォルト値がfalseに変更されています。

coordinateCommitReturnImmediatelyAfterPersistingDecisionfalse の場合、シャードトランザクションの調整役は、コミットの決定をクライアントに返す前に、すべてのノードがマルチドキュメントトランザクションのコミットを確認するまで待機します。

2022 年 2 月より、「Versioned API」の用語が「Stable API」に変更されました。この用語の変更によるコンセプトと機能についての変更はありません。

MongoDB 5.0 では、$lookup パイプライン ステージを使用するクエリの実行プラン統計が追加されました。

MongoDB 5.0 では、($)プレフィックスが付いているフィールド名や(.)文字を含むフィールド名のサポートが強化されました。これらの文字を使用するデータソースの操作を容易にするために、データを保存するための検証ルールが更新されました。

MongoDB 5.0 以降では、setDefaultRWConcern コマンドを使用して CWWC(Cluster Wide 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) は、選挙時やレプリカセット ノードが使用できなくなった場合に、より強力な耐久性保証を提供します。

MongoDB 5.0 以降、新しいパラメーター mongosShutdownTimeoutMillisForSignaledShutdown は、mongos のシャットダウンを開始する前に、進行中のデータベース操作が完了するまで待機する時間をミリ秒単位で指定します。

MongoDB 5.0 では、zstdCompressionLevel 構成ファイルオプションが導入され、blockCompressorzstd に設定されている場合に圧縮レベルを設定できます。

MongoDB 5.0 以降では、別の操作がコレクションに対して排他的(X)書込みロック(write lock)を保持している場合、次の読み取り操作はブロックされません。

コレクションに書き込む場合、mapReduceaggregate は、意向排他(IX)ロックを保持します。そのため、コレクションに対して排他 X ロックがすでに保持されている場合、 mapReduce および aggregate 書き込み操作はブロックされます。

MongoDB 5.0 では、ドキュメントがスキーマ検証に失敗した場合、詳細な説明が追加されます。

MongoDB 5.0 以降では、validate コマンドと db.collection.validate() ヘルパー メソッドに、不整合のあるコレクションを修復するための新しい修復オプションが追加されました。

validate コマンドと db.collection.validate() ヘルパー メソッドも、コレクションが修復された場合は true となる新しい repaired ブール値を返します。

MongoDB 5.0 以降では、validatedb.collection.validate() がコレクション内のドキュメントを検証します。コマンドは、スキーマ検証ルールに違反しているかどうかを報告します。

MongoDB 5.0 以降では、mongod--repair オプションにより、コレクションが検証され、不整合が検出され、可能であれば修正されるため、インデックスの再構築を回避できます。「用途と制限の --repair オプション」を参照してください。

MongoDB 5.0 以降では、validate コマンドと db.collection.validate() ヘルパー メソッドは、破損したドキュメントの RecordId 値の配列を含む新しい corruptRecords フィールドを返します。

MongoDB 5.0以降、 setParameterコマンドに新たに追加されたmaxValidateMemoryUsageMBパラメーターでは、 validateコマンドの最大メモリ使用量を設定します。

MongoDB 5.0 以降では、findChunksOnConfigTimeoutMS パラメーターを使用して、chunks での検索操作のタイムアウトを変更できます。

MongoDB 5.0 以降では、データベースプロファイラーfilter オプションを設定して、どの操作をプロファイルしてログに記録するかを決定できます。slowms プロファイラー オプションと sampleRate プロファイラー オプションの代わりに filter 式を使用できます。

次を参照してください。

MongoDB 5.0以降では、profileコマンドまたはdb.setProfilingLevel()ラッパー メソッドを使用してデータベースプロファイラーlevelslowmssampleRate、またはfilterに加えられた変更は、 log fileに記録されます。

MongoDB 5.0 以降では、監査するが有効になっている場合、logRotate コマンドを使用してサーバー ログと監査ログを個別にローテーションできるようになりました。以前は、logRotate は、2 つのログを一緒にローテーションしていました。

MongoDB 5.0 以降では、低速操作ログ メッセージにクライアントの IP アドレスを指定する remoteフィールドが含まれます。

MongoDB 5.0 以降では、remoteOpWaitMillis ログ フィールドを使用して、シャードからの結果の待機時間を取得できます。

MongoDB 5.0 以降では、ビュー低速クエリのログ メッセージに、ビューの詳細を含む resolvedViews フィールドが含まれるようになりました。

MongoDB 5.0 以降では、次のコマンドに変数のリストを定義する let オプションが追加されました。これにより、変数をクエリテキストから分離して、コマンドの読みやすさを向上させることができます。

update コマンドには、変数のリストを定義する c フィールドもあります。

MongoDB 5.0 以降では、mongod / mongosmongoldapuserToDNMapping の構成ファイル オプションと、--ldapUserToDNMapping のコマンドライン オプションが、空のマッピング ドキュメント(空の文字列または空の配列など)がオプションに指定されている場合、デフォルトで認証されたユーザー名を LDAP DN としてマッピングするようになりました。以前は、空のマッピング ドキュメントを提供するとマッピングが失敗していました。

MongoDB 5.0 以降では、dbStats コマンドは次の追加統計を出力します。

serverStatus には、出力に次の新しいフィールドが含まれます。

集計メトリクス
API バージョン メトリクス
レプリケーション メトリクス
読み取り保証 (read concern) カウンター
書込み保証 (write concern) カウンター
  • opWriteConcernCounters に次の新しいフィールドが追加されました。

    • opWriteConcernCounters.insert.noneInfo

    • opWriteConcernCounters.update.noneInfo

    • opWriteConcernCounters.delete.noneInfo

スレッド接続の数
  • connections.threadedは、クライアントからの着信接続数を報告します。この接続は、クライアントのリクエストを処理するスレッドに割り当てられます。

再シャーディング統計
サービス実行メトリクス
  • network.serviceExecutorsは、クライアントのリクエストの操作を実行するサービス実行プログラムについて報告します。

カーソル メトリクス
セキュリティ カウンター
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でのカーソルの反復 」を参照してください。

MongoDB 5.0 では、validateDBMetadata コマンドが追加されました。validateDBMetadata コマンドは、データベースまたはコレクションの保存されたメタデータが特定の API バージョン内で有効であるかどうかを確認します。

MongoDB 5.0 では、デフォルトの書込み保証 (write concern){ w: "majority" } に変更されます。MongoDB では、レプリカセット ノードの計算された過半数がディスクへの書込み (write) を実行、永続化した後にのみ書込みを認識するため、新しいデフォルトの書込み保証 (write concern) はパフォーマンスに影響を与える可能性があります。

アプリケーションがパフォーマンスを重視した書込み (write) に依存している場合、データ耐久性の保証を犠牲にしてデフォルトの書込み保証 (write concern) を無効にできます。この設定を無効にするには、次のことを実行します。

  • パフォーマンスの重要な書き込みについては、個々の操作レベルで書込み保証 (write concern) を設定します。詳細については、「ドライバーのドキュメント」を参照してください。

  • デフォルトの書込み保証 (write concern) を明示的に設定するには、setDefaultRWConcern コマンドを使用します。

警告

書込み操作で{ w: 1 }書込み保証が使用される場合、書込み操作が完了する前にプライマリが再起動すると、ロールバック ディレクトリはoplog hole後に送信された書込みを除外することがあります。

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 には、次のいずれかが必要です。

  • Intel Sandy Bridge 以降の Core プロセッサ、または

  • Intel Tiger Lake 以降の Celeron またはPentium プロセッサ。

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 では、次のプラットフォームのサポートが除かれます。

  • macOS 10.13

  • RHEL 7 / CentOS 7 / Oracle 7PPC64LEアーキテクチャ上)

  • s390x アーキテクチャ上の SLES 12

  • PPC64LE s390x アーキテクチャ上の Ubuntu 18.04

MongoDB 5.0 でサポートされているプラットフォームとアーキテクチャの完全なリストについては、「プラットフォーム サポート」を参照してください。

一部の変更は互換性に影響を与える可能性があり、ユーザー側のアクションが必要になる場合があります。互換性の変更の詳細リストについては、「MongoDB 5.0 の互換性の変更」を参照してください。

重要

機能の互換性バージョン

MongoDB 4.4 配置から MongoDB 5.0 にアップグレードするには、4.4 配置で featureCompatibilityVersion4.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 ダウンロードセンターにアクセスします。

Tip

以下も参照してください。

バージョン
問題
ステータス
5.0.0
SERVER-58171 : 時系列コレクションのgranularity パラメーターは、コレクションが作成された後は変更できません。
5.0.1 で修正済み
5.0.0
SERVER-58392 : リシャーディング操作が進行中の場合、バックアップまたは復元操作が成功しなくなる可能性があります。
未解決

問題を報告するには、MongoDB GitHub リポジトリで、MongoDB サーバーまたは関連プロジェクトのいずれかに対して JIRA チケットを提出する手順を参照してください。

戻る

変更履歴