Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

convertToCapped

Nesta página

  • Definição
  • Compatibilidade
  • Sintaxe
  • Exemplo
convertToCapped

Aviso

Não execute este comando em collection fragmentadas

O MongoDB não suporta o comando convertToCapped em collections fragmentadas.

O comando convertToCapped converte uma collection não limitada existente em umacollection limitada collection limitada dentro do mesmo banco de dados de dados.

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

Importante

Este comando não é suportado em instâncias sem servidor. Para obter mais informações, consulte Comandos não suportados.

  • 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 pega uma coleção existente (<collection>) e a transforma em uma collection limitada com um tamanho máximo em bytes, especificado pelo argumento size (<capped size>).

Durante o processo de conversão, o comando convertToCapped apresenta o seguinte comportamento:

  • 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

O convertToCapped não recriará índices da coleção original na nova coleção, exceto o índice do campo _id. Se você precisar de índices nesta coleção, será necessário criar esses índices após a conversão terminar.

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" : NumberLong("9223372036854775807"),
"maxSize" : 8192,
...
}

O convertToCapped não recriará índices da coleção original na nova coleção, exceto o índice do campo _id. Se você precisar de índices nesta coleção, será necessário criar esses índices após a conversão terminar.

Dica

Veja também:

Voltar

compactaStructuredEncryptionData