$add (Adição)
Última atualização: 2026-10-09
$add (Adição)
$add realiza adição dentro de expressões de agregação. Ele soma vários números, adiciona uma quantidade de milissegundos a uma data ou retorna uma nova data a partir de uma data mais milissegundos. É comumente usado em $project, $addFields ou $set para calcular totais, como preço mais imposto. Os argumentos são passados como um array com pelo menos dois elementos; se qualquer argumento for null ou estiver ausente, toda a expressão retorna null. Para calcular a diferença em milissegundos entre duas datas, use $subtract.
| Categoria | Matemática |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $add: [ <expressão1>, <expressão2>, ... ] }
⚙️ Parâmetros
| operando | Valores numéricos, datas ou expressões que resolvam para eles; pelo menos dois. |
|---|
Retorno:A soma dos números; data mais milissegundos retorna uma data
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $add: calcular total com imposto
db.orders.aggregate([
{ $project: {
total: { $add: ['$price', '$tax'] }
} }
])
Saída:
{ '_id': 1, 'total': 110 }
{ '_id': 2, 'total': 55 }
📌 Notas
- Qualquer argumento null ou ausente torna toda a expressão null (proteja com $ifNull)
- Data mais milissegundos retorna uma data; converta milissegundos em dias dividindo por 86400000
- Diferente de $sum (um acumulador usado em $group), $add é uma expressão simples
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQual é a diferença entre $add e $sum?
A$sum é um acumulador usado em $group para somar valores entre documentos; $add é uma expressão geral que soma os valores de um array.
QO $add pode adicionar dias a uma data?
ANão diretamente — o número é tratado como milissegundos. Multiplique por 86400000 antes, ou use $dateAdd com a unidade day para maior clareza.
QO que acontece quando $add encontra null?
ASe qualquer argumento for null ou estiver ausente, o resultado é null; envolva com $ifNull quando precisar de um padrão.