$set (Definir Campos)

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

$set (Definir Campos)

$set é um alias de $addFields: ele adiciona ou sobrescreve campos em cada documento mantendo todo o resto. Use-o no meio do pipeline para anexar valores calculados, constantes ou resultados de expressões. Introduzido no MongoDB 3.4, é totalmente intercambiável com $addFields; note que ele compartilha um nome com o operador de atualização $set.

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

📝 Sintaxe

{ $set: { <campo>: <expressão>, ... } }

⚙️ Parâmetros

campoNomes de campo mapeados para expressões de agregação ou valores constantes.

Retorno:Fluxo de documentos com campos definidos

▶ Exemplo

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

// $set: adiciona uma constante status, converte o tipo de amount
db.orders.aggregate([
  { $set: { status: 'PENDING', amount: { $toDouble: '$amount' } } }
])

Saída:

// Campos originais mantidos; status é uma constante, amount convertido para double

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QDevo usar $set ou $addFields?
AAmbos funcionam; $addFields é mais comum, enquanto $set pode ser confundido com o operador de atualização.
Q$set pode definir campos embutidos?
ASim, com caminhos pontilhados, ex.: { $set: { 'addr.city': 'SH' } }.
Q$set exclui campos?
ANão, ele apenas adiciona ou sobrescreve; use $unset para remover campos.
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%