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 collection não limitada existente em umacollection limitada collection limitada dentro do mesmo banco de dados de dados.
Compatibilidade
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
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. |
writeConcern | |
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.
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 do campo _id
. Se você precisar de índices nesta coleção, será necessário criar esses índices após a conversão terminar.