Capped コレクション内の最大ドキュメントの変更
バージョン 6.0 で追加。
上限付きコレクション内のドキュメントの最大数を変更するには、 collMod
コマンドのcappedMax
オプションを使用します。
cappedMax
が0
未満の場合、ドキュメント数の上限はありません。cappedMax
がコレクション内の現在のドキュメント数より小さい場合、MongoDB は次回の挿入操作で超過ドキュメントを削除します。
このタスクについて
一般的に、 TTL(Time To Live)インデックスは、Cappedコレクションよりも優れたパフォーマンスと柔軟性を提供します。 TTL インデックスは期限切れとなり、日付型フィールドの値とインデックスの TTL 値に基づいて、通常のコレクションからデータを削除します。
Capped コレクションでは書込み操作がシリアル化されるため、それ以外のコレクションよりも同時挿入、更新、削除のパフォーマンスは低くなります。 Capped コレクションを作成する前に、TTL インデックスで代替できないかを検討しましょう。
始める前に
以下のように、最大20 、 000ドキュメントを保存できるlog
という上限付きコレクションを作成します。
db.createCollection( "log", { capped: true, size: 5242880, max: 20000 } )
手順
次のコマンドを実行して、 log
コレクション内のドキュメントの最大数を5 、 000に設定します。
db.runCommand( { collMod: "log", cappedMax: 5000 } )