$multiply (Multiplicação)
Última atualização: 2026-10-09
$multiply (Multiplicação)
$multiply calcula o produto de vários valores numéricos em expressões de agregação. Os argumentos são passados como um array com pelo menos dois elementos. É comumente usado em $project, $addFields ou $set para calcular subtotais de linha (preço unitário vezes quantidade) ou conversões de moeda. Se qualquer argumento for null ou estiver ausente, toda a expressão retorna null; strings ou datas geram erro. Como $add, é uma expressão simples, não um acumulador — um produto acumulado entre documentos agrupados precisa de $push com $reduce.
| Categoria | Matemática |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $multiply: [ <expressão1>, <expressão2>, ... ] }
⚙️ Parâmetros
| fator | Valores numéricos ou expressões que resolvam para eles; pelo menos dois. |
|---|
Retorno:O produto de todos os argumentos
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $multiply: calcular subtotal a partir de preço e quantidade
db.orders.aggregate([
{ $project: {
subtotal: { $multiply: ['$price', '$quantity'] }
} }
])
Saída:
{ '_id': 1, 'subtotal': 250 }
{ '_id': 2, 'subtotal': 72 }
📌 Notas
- Os argumentos devem ser números; strings e datas geram erro
- Qualquer argumento null ou ausente resulta em null
- Multiplicar entre documentos não é papel do $multiply; use $group com $reduce
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QO $multiply pode multiplicar strings ou datas?
ANão — tipos não numéricos geram erro; converta com $toDouble ou $toInt antes.
QQual é a diferença entre $multiply e $sum?
A$sum é um acumulador de $group que soma linhas; $multiply é uma expressão que multiplica os valores de um array.
QComo multiplico valores entre documentos?
AColete os valores com $push dentro de $group e depois multiplique passo a passo com $reduce.