Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual 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 coleção não limitada existente em uma coleção limitada dentro do mesmo banco de dados.

Este comando está disponível em sistemas hospedados nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações MongoDB na nuvem

Observação

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

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 exibe 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 no campo _id . Se você precisar de índices nessa coleção, precisará criá-los após a conclusão da conversão.

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 no campo _id . Se você precisar de índices nessa coleção, precisará criá-los após a conclusão da conversão.

Dica

Veja também:

← compactaStructuredEncryptionData
criar →