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

db.collection.renameCollection() (método mongosh)

MongoDB com drivers

Esta página documenta um método mongosh. Para ver o método equivalente em um driver do MongoDB, consulte a página correspondente da sua linguagem de programação:
db.collection.renameCollection(target, dropTarget)

Renomeia uma coleção. Fornece um wrapper para o comando do banco de dados renameCollection .

Parâmetro
Tipo
Descrição

target

string

O novo nome da coleção. Coloque a string entre aspas. Consulte Restrições de nomenclatura.

dropTarget

booleano

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

Esse método está disponível em implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud

Observação

This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.

  • 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

A partir do MongoDB 8.1, renameCollection está incluído na API estável V1. Para usar o renameCollection na API estável, você deve conectar seu driver a uma implantação que esteja executando o MongoDB 8.1 ou superior.

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

The db.collection.renameCollection() method and renameCollection command invalidate open cursors. This creates an invalidate event for any existing change streams opened on the source or target collection, and also interrupts queries that are currently returning data from the renamed collection.

  • O método tem as seguintes limitações:

    • db.collection.renameCollection() não pode mover uma coleção entre bancos de dados. Use renameCollection para essas operações de renomeação.

    • Não é possível renomear visualizações.

    • Você não pode renomear uma collection para si mesma. Se você tentar renomear uma collection para si mesma, um erro IllegalOperation será gerado.

Observação

A partir do MongoDB 9.0, você pode usar db.collection.renameCollection() em coleções de séries temporais.

A operação de renomeação falha com um erro BackgroundOperationInProgressForNamespace se uma construção de índice estiver em andamento na coleção de origem. A operação também falha 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 construção de índice e, em seguida, tente novamente a operação. Para verificar construções de índice em andamento, use o método db.currentOp().

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.

renameCollection() obtains an exclusive lock on the source and target collections for the duration of the operation. All subsequent operations on the collections must wait until renameCollection() completes.

A mongodump started with --oplog fails if a client issues db.collection.renameCollection() during the dump process. See mongodump.--oplog for more information.

Você pode chamar 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á.