$unset (Remover Campos)
Última atualização: 2026-10-09
$unset (Remover Campos)
$unset remove campos especificados dos documentos, mantendo todo o resto. É um atalho para { $project: { campo: 0 } } e pode remover vários campos de uma vez, incluindo caminhos aninhados via notação pontilhada. Útil para limpar campos sensíveis como senhas ou tokens e para limpar campos intermediários.
| Categoria | Estágios Principais |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $unset: "<campo>" } ou { $unset: [ "<campo1>", "<campo2>" ] }
⚙️ Parâmetros
| campo | Um nome de campo, ou uma matriz de nomes de campo, a remover. |
|---|
Retorno:Fluxo de documentos com os campos especificados removidos
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $unset: remove campos sensíveis e um número de cartão aninhado
db.users.aggregate([
{ $unset: ['password', 'token', 'detail.card'] }
])
Saída:
// Os documentos não carregam mais password, token ou detail.card
📌 Notas
- Equivalente a um $project todo em 0
- Caminhos pontilhados removem sub-campos embutidos
- Use a forma de array para remover vários campos de uma vez
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
Q$unset pode remover campos embutidos?
ASim, com caminhos pontilhados como 'detail.card' para atingir um sub-campo.
QComo $unset difere de excluir campos com $project?
ASem diferença real; $unset é açúcar sintático para a projeção de zeros, mais limpo para muitos campos.
QE se $unset atingir um campo ausente?
ASem erro; o documento passa inalterado.