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

convertToCapped

項目一覧

  • 互換性
  • 構文
convertToCapped

警告

シャーディングされたコレクションではこのコマンドは実行しないでください

MongoDB では、シャーディングされたコレクションで convertToCappedコマンドをサポートしていませ ん 。

convertToCappedコマンドは、既存の Capped 以外のコレクションを同じデータベース内の Capped コレクションに変換します。

このコマンドは、次の環境でホストされている配置で使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです

重要

このコマンドはサーバーレスインスタンスではサポートされていません。 詳細については、「サポートされていないコマンド 」を参照してください。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

このコマンドの構文は、次のとおりです。

{ convertToCapped: <collection>,
size: <capped size>,
writeConcern: <document>,
comment: <any>
}

このコマンドは、次のフィールドを使用します。

フィールド
説明
convertToCapped
変換する既存のコレクションの名前。
サイズ
上限付きコレクションの最大サイズ(バイト単位)。
writeConcern
任意。 コマンドの drop書込み保証( write concern ) を表すドキュメント。デフォルトの書込み保証を使用する場合は省略します。
comment

任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。

コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。

convertToCappedは既存のコレクション( <collection> )を受け取り、 size引数( <capped size> )で指定される最大サイズの Capped コレクションに変換します。

変換プロセス中に、 convertToCappedコマンドは次の動作を示します。

  • MongoDB は、元のコレクション内のドキュメントを次の場所で走査します:
    自然な順序、ドキュメントを新しい Capped コレクションにロードします。
  • Capped コレクションに指定されたcapped size
    元の Capped コレクションのサイズより小さい場合、MongoDB は挿入順序、または先出し順序に基づいて、Capped コレクション内のドキュメントを上書きします。
  • 内部的には、コレクションを変換するためにMongoDB は次を使用します

    手順

    • cloneCollectionAsCapped コマンドは、Cappedを作成します
      コレクションを作成し、データをインポートします。
    • MongoDB は元のコレクションを削除します。

    • renameCollection が、新しい Cappedコレクションの名前を変更します
      に、元のコレクションの名前を設定します。
  • これにより、操作中はデータベースの排他ロックが保持されます。同じデータベースをロックする他の操作は、操作が完了するまでブロックされます。データベースをロックする操作の場合、「一般的なクライアント操作によって取得されるロック」を参照してください。

警告

convertToCappedは、 _idフィールドのインデックス以外では、元のコレクションから新しいコレクションにインデックスを再作成しません。 このコレクションにインデックスが必要な場合は、変換の完了後にこれらのインデックスを作成する必要があります。

次の例では、 db.collection.insertOne()を使用してeventsコレクションを作成し、 db.collection.stats()を使用してコレクションに関する情報を取得します。

db.events.insertOne( { click: 'button-1', time: new Date() } )
db.events.stats()

MongoDB は以下を返します。

{
"ns" : "test.events",
...
"capped" : false,
...
}

eventsコレクションを Capped コレクションに変換し、更新されたコレクション情報を表示するには、次のコマンドを実行します。

db.runCommand( { convertToCapped: 'events', size: 8192 } )
db.events.stats()

MongoDB は以下を返します。

{
"ns" : "test.events",
...
"capped" : true,
"max" : NumberLong("9223372036854775807"),
"maxSize" : 8192,
...
}

convertToCappedは、 _idフィールドのインデックス以外では、元のコレクションから新しいコレクションにインデックスを再作成しません。 このコレクションにインデックスが必要な場合は、変換の完了後にこれらのインデックスを作成する必要があります。

Tip

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

戻る

compact

項目一覧