$addFields (Adicionar Campos)

Última atualização: 2026-10-09

$addFields (Adicionar Campos)

$addFields adiciona novos campos a cada documento, ou sobrescreve campos existentes, preservando todos os outros. Diferente de $project — que descarta campos não listados por padrão — $addFields apenas aumenta o documento. Novos valores podem ser qualquer expressão de agregação, frequentemente calculados a partir de resultados de $lookup. Desde o MongoDB 3.4 é equivalente a $set.

CategoriaEstágios Principais
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $addFields: { <novoCampo>: <expressão>, ... } }

⚙️ Parâmetros

novo campoNomes de campo mapeados para expressões que referenciam campos do documento de entrada.

Retorno:Fluxo de documentos com campos adicionados ou sobrescritos

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// $addFields: adiciona um campo total
db.sales.aggregate([
  { $addFields: { total: { $multiply: ['$price', '$qty'] } } }
])

Saída:

// Todos os campos originais mantidos, mais total
{ "item": "Pen", "price": 50, "qty": 3, "total": 150 }

📌 Notas

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QQual é a diferença entre $addFields e $set?
ADesde o MongoDB 3.4 eles são totalmente equivalentes; $addFields é o nome mais antigo.
Q$addFields pode referenciar seus novos campos?
ANão. Expressões em um estágio veem apenas o documento de entrada; encadeie vários estágios $addFields em vez disso.
Q$addFields sobrescreve campos existentes?
ASim. Um campo com nome existente é sobrescrito.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%