$rename (Renomear Campo)
Última atualização: 2026-10-09
$rename (Renomear Campo)
$rename renomeia um campo. `{ $rename: { 'oldName': 'newName' } }`, com caminhos pontilhados para campos aninhados. Se o novo nome já existir, o valor antigo o sobrescreve; caso contrário, o campo é criado. $rename não renomeia campos dentro de elementos de array, e mover um campo aninhado não cria documentos intermediários.
| Categoria | Atualização de Campo |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $rename: { <nome antigo do campo>: <novo nome do campo> } }
⚙️ Parâmetros
| nome do campo antigo | O nome do campo de origem. |
|---|---|
| nome do campo novo | O nome do campo de destino; caminhos com ponto permitidos. |
Retorno:O resultado da atualização
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $rename: renomeia username para handle
// Ignorado se o campo estiver ausente
db.users.updateOne(
{ _id: 1 },
{ $rename: { username: 'handle' } }
)
// Renomeação de campo aninhado
db.users.updateOne(
{ _id: 1 },
{ $rename: { 'profile.city': 'profile.cityName' } }
)
Saída:
// username vira handle; profile.city vira profile.cityName
📌 Notas
- Um campo com o novo nome já existente é sobrescrito pelo valor antigo
- Campos dentro de elementos de array não são renomeados
- Ignorado silenciosamente quando o campo de origem está ausente
🏷️ Tags Relacionados
💡 Casos Relacionados
Prática: CRUD para um sistema de comentários de blog
Atualização do documento: Uma explicação detalhada sobre `updateOne` e `updateMany`
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
Q$rename pode renomear campos aninhados?
ASim, via caminhos pontilhados como 'profile.city'.
QO que acontece se o novo nome do campo já existir?
AO valor antigo sobrescreve o campo novo existente.
Q$rename lida com campos dentro de arrays?
ANão, campos dentro de elementos de array exigem atualizações por elemento.