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

convertToCapped

Nesta página

  • Definição
  • 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 umacapped collection dentro do mesmo banco de dados.

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.
Escreva preocupação
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 coleção 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:

← compactaStructuredEncryptionData
criar →