$divide (Divisão)
Última atualização: 2026-10-09
$divide (Divisão)
$divide realiza divisão em expressões de agregação com dois argumentos: o dividendo e o divisor. É frequentemente usado para calcular preços unitários, valores per capita ou porcentagens, por exemplo dividindo dois resultados de $sum para obter uma razão. Notavelmente, dividir por zero não gera erro — retorna null, ao contrário da maioria das linguagens de programação. Qualquer argumento null ou ausente também resulta em null. $divide aceita inteiros, doubles e Decimals, e o resultado costuma ser um double.
| Categoria | Matemática |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $divide: [ <expressão1>, <expressão2> ] }
⚙️ Parâmetros
| dividendo | Um valor numérico ou uma expressão que resolva para um. |
|---|---|
| divisor | A expressão do denominador; um divisor zero torna o resultado null. |
Retorno:O quociente dos dois números; null quando o divisor é zero
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $divide: calcular preço médio por item
db.orders.aggregate([
{ $project: {
avgPrice: { $divide: ['$total', '$quantity'] }
} }
])
Saída:
{ '_id': 1, 'avgPrice': 25 }
{ '_id': 2, 'avgPrice': 9 }
📌 Notas
- Um divisor zero resulta em null em vez de gerar erro
- A divisão inteira produz um double; combine com $round ou $trunc quando for necessário arredondar
- Qualquer argumento null ou ausente resulta em null
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QO $divide gera erro ao dividir por zero?
ANão — ele retorna null; use $ifNull quando precisar de um padrão.
QQue tipo a divisão inteira retorna?
AO resultado é um double, então 5 dividido por 2 dá 2.5 em vez de truncar.
QComo obtenho uma razão de dois resultados de $sum?
APasse-os diretamente para $divide depois de calcular as duas somas em $group, e depois divida em $project.