db.collection.renameCollection()
Nesta página
Definição
db.collection.renameCollection(target, dropTarget)
Importante
Método mongosh
Esta página documenta um método
mongosh
. Esta não é a documentação para comandos de banco de dados ou drivers específicos de idioma, como Node.js.Para o comando do banco de dados, consulte o comando
renameCollection
.Para drivers de API do MongoDB, consulte a documentação do driver MongoDB específica do idioma.
Para a documentação de shell legada do
mongo
, consulte a documentação para a versão correspondente do MongoDB Server:Renomeia uma coleção. Fornece um wrapper para o comando do banco de dados
renameCollection
.ParâmetroTipoDescriçãotarget
stringO novo nome da coleção. Coloque a string entre aspas. Consulte Restrições de nomenclatura.dropTarget
booleanoOpcional. Setrue
,mongod
elimina otarget
derenameCollection
antes de renomear a collection. O valor padrão éfalse
.
Comportamento
O método db.collection.renameCollection()
opera dentro de uma coleção alterando os metadados associados com uma determinada coleção.
Consulte a documentação renameCollection
para obter avisos e mensagens adicionais.
Aviso
O método db.collection.renameCollection()
e o comando renameCollection
invalidarão os cursores abertos, o que interrompe as queries que estão retornando dados no momento.
Para Change Streams, o método db.collection.renameCollection()
e o comando renameCollection
criam uma invalidação para qualquer Change Streams existente aberto na coleção de origem ou de destino.
O método tem as seguintes limitações:
db.collection.renameCollection()
não é possível mover uma collection entre bancos de dados. UserenameCollection
para essas operações de renomeação.Não é possível renomear visualizações.
db.collection.renameCollection()
não é suportado em coleções de séries temporais.Você não pode renomear uma collection para si mesma. Se você tentar renomear uma collection para si mesma, um erro
IllegalOperation
será gerado.
Bloqueio de recursos em clusters fragmentados
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.
Bloqueio de recursos em conjuntos de réplicas
renameCollection()
obtém um bloqueio exclusivo nas collections de origem e destino durante a operação. Todas as operações subsequentes nas collections devem esperar até que renameCollection()
seja concluído.
Interação com mongodump
Um mongodump
iniciado com --oplog
falha se um cliente emitir db.collection.renameCollection()
durante o processo de despejo. Consulte mongodump.--oplog
para mais informações.
Exemplo
Chame o método db.collection.renameCollection()
em um objeto de coleção. Por exemplo:
db.rrecord.renameCollection("record")
Esta operação renomeará a coleção rrecord
para record
. Se o nome do destino (ou seja record
) é o nome de uma coleção existente, então a operação falhará.