Definição
convertToCappedAviso
Não execute este comando em collection fragmentadas
MongoDB does not support the
convertToCappedcommand on sharded collections.The
convertToCappedcommand converts an existing, non-capped collection to a capped collection within the same database.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
- MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Sintaxe
O comando tem a seguinte sintaxe:
db.runCommand( { convertToCapped: <collection>, size: <capped size>, writeConcern: <document>, comment: <any> } )
Campos de comando
O comando utiliza os seguintes campos:
Campo | Descrição |
|---|---|
convertToCapped | O nome da collection existente para converter. |
Tamanho | O tamanho máximo, em bytes, para a collection limitada. |
writeConcern | |
| Opcional. Um comentário fornecido pelo usuário para anexar a este comando. Depois de definido, esse comentário aparece junto com os registros desse comando nos seguintes locais:
Um comentário pode ser qualquer tipo BSON válido (string, inteiro, objeto, array etc). |
convertToCapped takes an existing collection (<collection>) and transforms it into a capped collection with a maximum size in bytes, specified by the size argument (<capped size>).
During the conversion process, the convertToCapped command exhibits the following behavior:
O MongoDB percorre o documento na collection original em ordem de armazenamento e carrega o documento em uma nova collection limitada.
Se o
capped sizeespecificado para a collection limitada for menor que o tamanho da collection original sem limite, o MongoDB substituirá os documento na collection limitada com base na ordem de inserção ou na ordem do primeiro a entrar e do primeiro a sair .Internamente, para converter a collection, o MongoDB usa o seguinte procedimento
cloneCollectionAsCappedo comando cria a collection limitada e importa os dados.O MongoDB descarta a collection original.
renameCollectionrenomeia a nova coleção limitada para o nome da coleção original.
Isso mantém uma trava exclusiva do banco de dados durante a operação. Outras operações que travam o mesmo banco de dados serão bloqueadas até a operação ser concluída. Consulte Quais travas são feitas por algumas operações comuns do cliente? para saber quais operações travam o banco de dados.
Aviso
The convertToCapped will not recreate indexes from the original collection on the new collection, other than the index on the _id field. If you need indexes on this collection you will need to create these indexes after the conversion is complete.
Exemplo
Converter uma collection
O exemplo a seguir usa db.collection.insertOne() para criar uma collection events e db.collection.stats() para obter informações sobre a collection:
db.events.insertOne( { click: 'button-1', time: new Date() } ) db.events.stats()
O MongoDB retornará o seguinte:
{ "ns" : "test.events", ... "capped" : false, ... }
Para converter a collection events em uma collection limitada e exibir as informações atualizadas da collection, execute os seguintes comandos:
db.runCommand( { convertToCapped: 'events', size: 8192 } ) db.events.stats()
O MongoDB retornará o seguinte:
{ "ns" : "test.events", ... "capped" : true, "max" : Long("9223372036854775807"), "maxSize" : 8192, ... }
The convertToCapped will not recreate indexes from the original collection on the new collection, other than the index on the _id field. If you need indexes on this collection you will need to create these indexes after the conversion is complete.
Dica