Página inicial do Docs → Desenvolver aplicações → Manual do MongoDB
convertToCapped
Nesta página
Definição
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.
Compatibilidade
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.
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão 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. |
Escreva preocupaçã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.
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" : 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.