Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

convertToCapped (comando de banco de dados)

convertToCapped

Aviso

Não execute este comando em collection fragmentadas

MongoDB does not support the convertToCapped command on sharded collections.

The convertToCapped command converts an existing, non-capped collection to a capped collection within the same database.

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

O comando tem a seguinte sintaxe:

db.runCommand(
{
convertToCapped: <collection>,
size: <capped size>,
writeConcern: <document>,
comment: <any>
}
)

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 documento que Express a drop referência de escrita do comando . Omita para usar a referência de escrita padrão.

comment

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 size especificado 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

    • cloneCollectionAsCapped o comando cria a collection limitada e importa os dados.

    • O MongoDB descarta a collection original.

    • renameCollection renomeia 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.

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

create