Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

renameCollection (comando de banco de dados)

renameCollection

Altera o nome de uma collection existente. Especifique os nomes das collections como na forma de um renameCollection namespace completo<database>.<collection> ().

Dica

mongoshEm, esse comando também pode ser executado por meio do método renameCollection() assistente.

Os métodos auxiliares são convenientes para os mongosh usuários, mas podem não retornar o mesmo nível de informações que os comandos do banco de dados . Nos casos em que a conveniência não for necessária ou os campos de retorno adicionais forem necessários, use o comando de banco de dados.

Emita o comando no renameCollection bancode dados admin.

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

Observação

Este comando é aceito em todos os clusters do MongoDB Atlas. Para obter informações sobre o suporte do Atlas a todos os comandos, 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(
{
renameCollection: "<source_namespace>",
to: "<target_namespace>",
dropTarget: <true|false>,
writeConcern: <document>,
comment: <any>
}
)

O comando contém os seguintes campos:

Campo
Tipo
Descrição

renameCollection

string

O namespace da collection para renomear. O namespace é uma combinação do nome do banco de dados e do nome da collection.

to

string

O novo namespace da collection. Se o novo namespace especificar um banco de dados diferente, o renameCollection comando copiará a collection para o novo banco de dados e descartará a collection de origem. Consulte Restrições de nomenclatura.

Em implantações do MongoDB Atlas, a função atlasAdmin concede apenas a ação de privilégio renameCollectionSameDB, portanto, você não pode renomear uma coleção para um banco de dados diferente.

dropTarget

booleano

Opcional.true Se, eliminarámongod o target de antes de renomear a collection. O valor renameCollection padrão false é.

writeConcern

documento

Opcional. Um documento que expressa a write concern para a operação. Omitir para usar a função de gravação padrão.

Quando emitido em um cluster fragmentado, omongos converte o preocupação de renameCollection gravação do comando e seu assistente db.collection.renameCollection() "majority"em.

comment

any

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).

A partir do MongoDB,5.0 você pode usar o comando para alterar o nome de uma coleção fragmentada. O banco de dados de destino deve ser o mesmo que o banco de dados de renameCollection origem.

Você pode usar para renomear uma collection não fragmentada em um cluster fragmentado , desde que os bancos de dados de origem e de destino estejam no mesmo fragmento renameCollection primário.

Não é possível usar para renomear uma coleção de séries temporais. Para obter mais informações, consulte Limitações renameCollectiondas Coleções de séries temporais.

renameCollection falhará se target for o nome de uma collection existente e você não dropTarget: true especificar.

A operação de renomeação falha com um erro BackgroundOperationInProgressForNamespace se uma compilação de índice estiver em andamento na collection de origem. A operação também falhará se uma construção de índice estiver em andamento na coleção de destino e você especificar dropTarget: true.

Para renomear a coleção, aguarde a conclusão da compilação do índice e tente novamente a operação. Para verificar se há construções de índice em andamento, use o db.currentOp() método.

Alterado na versão 3.6.

renameCollection tem implicações de desempenho diferentes, dependendo do namespace de destino.

Se o banco de dados de destino for o mesmo que o banco de dados de origem , simplesmente alterará o namespace. Esta é uma operaçãorenameCollection rápida.

Se o banco de dados de destino diferir do banco de dados de origem, o copiará todos os documentos da coleção de origem para a coleção de destino. Dependendo do tamanho da collection, pode levar mais tempo para serrenameCollection concluída.

Alterado na versão 5.0.

Ao renomear uma collection fragmentada ou não fragmentada em um cluster fragmentado, as collections de origem e de destino são bloqueadas exclusivamente em cada shard. As operações subsequentes nas collections de origem e de destino devem aguardar até que a operação de renomeação seja concluída.

Para obter mais informações sobre bloqueios no MongoDB, consulte as Perguntas frequentes: simultaneidade.

Se estiver renomeando uma collection no mesmo banco de dados, obtém um bloqueio exclusivo nas collections de origem e de destino duranterenameCollection renameCollection a operação. Todas as operações subsequentes nas collections devem esperar até que seja concluído.

Se renomear uma collection entre diferentes bancos de dados, obtém um bloqueio exclusivo (W) no banco de dados de destino, um bloqueio compartilhado (r) de intenção no banco de dados derenameCollection renameCollection origem e um bloqueio compartilhado (S) na collection de origem. As operações subsequentes no banco de dados de destino devem aguardar até que libere o bloqueio exclusivo do banco de dados .

Para obter mais informações sobre bloqueios no MongoDB, consulte as Perguntas frequentes: simultaneidade.

  • Você não pode renomear uma collection de um banco de dados replicado para o banco de dados do local, que não é replicado.

  • Não pode renomear uma collection a partir da base de dados local , que não é replicada, para uma base de dados replicada.

Aviso

O db.collection.renameCollection() método e renameCollection o comando invalidarão os cursores abertos, o que interrompe as queries que estão retornando dados no momento.

Para Change Streams do MongoDB, o db.collection.renameCollection() método e renameCollection o comando criam um evento de invalidação para qualquer Change Streams do MongoDB existente aberto na collection de origem ou de destino.

Ummongodumpiniciado com--oplogfalha se um cliente emitir o comandorenameCollectiondurante o processo de despejo. Consultemongodump.--oplogpara mais informações.

O exemplo seguinte renomeia uma collection denominada orders no banco de dados do test para orders2014 no banco de dados do test.

db.adminCommand( { renameCollection: "test.orders", to: "test.orders2014" } )

mongosh fornece o assistente para db.collection.renameCollection() o comando renomear collections dentro do mesmo banco de dados. O seguinte é equivalente ao exemplo anterior:

use test
db.orders.renameCollection( "orders2014" )