$unset (Remover Campo)
Última atualização: 2026-10-09
$unset (Remover Campo)
$unset remove o campo especificado de um documento. `{ $unset: { age: '' } }` — o valor é um espaço reservado, geralmente uma string vazia. Use caminhos pontilhados para campos aninhados; campos ausentes são ignorados silenciosamente. Dentro de elementos de array, $unset define o valor como null em vez de remover o elemento (use $pull para remover).
| Categoria | Atualização de Campo |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $unset: { <campo>: '' } }
⚙️ Parâmetros
| campo | O campo a remover; caminhos com ponto permitidos. |
|---|---|
| valor de espaço reservado | Um valor de espaço reservado, geralmente uma string vazia. |
Retorno:O resultado da atualização
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $unset: remove o campo age
db.users.updateOne(
{ _id: 1 },
{ $unset: { age: '' } }
)
// Remove um campo aninhado
db.users.updateOne(
{ _id: 1 },
{ $unset: { 'address.city': '' } }
)
Saída:
// Os campos age e address.city são removidos do documento
📌 Notas
- Dentro de elementos de array, $unset define null em vez de remover
- A contraparte de $set: um remove, o outro escreve
- Ignorado silenciosamente quando o campo está ausente
🏷️ Tags Relacionados
💡 Casos Relacionados
Validação de esquema: validação de dados na camada do banco de dados
Atualização do documento: Uma explicação detalhada sobre `updateOne` e `updateMany`
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
Q$unset remove elementos de array?
ANão. Dentro de arrays ele define a posição como null; use $pull para remover elementos.
QPor que $unset deve carregar um valor?
AO valor é um espaço reservado, geralmente uma string vazia; qualquer valor se comporta da mesma forma.
Q$unset pode remover campos aninhados?
ASim, via caminhos pontilhados.