コレクションを上限付きに変換する
Capped 以外のコレクションを Capped コレクションに変換するには、 convertToCapped
データベースコマンドを使用します。
convertToCapped
コマンドは、操作している間、データベースの排他ロックを保持します。 同じデータベースをロックする他の操作は、 convertToCapped
操作が完了するまでブロックされます。
このタスクについて
一般的に、 TTL(Time To Live)インデックスは、Cappedコレクションよりも優れたパフォーマンスと柔軟性を提供します。 TTL インデックスは期限切れとなり、日付型フィールドの値とインデックスの TTL 値に基づいて、通常のコレクションからデータを削除します。
Capped コレクションでは書込み操作がシリアル化されるため、それ以外のコレクションよりも同時挿入、更新、削除のパフォーマンスは低くなります。 Capped コレクションを作成する前に、TTL インデックスで代替できないかを検討しましょう。
始める前に
log2
という上限のないコレクションを作成します。
db.createCollection("log2")
手順
1
コレクションを Capped コレクションに変換する
log2
コレクションを Capped コレクションに変換するには、 convertToCapped
コマンドを実行します。
db.runCommand( { convertToCapped: "log2", size: 100000 } )
log2
コレクションの最大サイズは100 、 000バイトです。
2
コレクションが上限付きであることを確認する
log2
コレクションが上限付きになったことを確認するには、 isCapped()
メソッドを使用します。
db.log2.isCapped()
true