$subtract (Subtração)
Última atualização: 2026-10-09
$subtract (Subtração)
$subtract realiza subtração em expressões de agregação, a contraparte de $add. Ele aceita exatamente dois argumentos: número menos número retorna a diferença, data menos data retorna milissegundos e data menos milissegundos retorna uma data anterior. É frequentemente usado em $project ou $set para calcular diferenças, como um preço com desconto ou o tempo decorrido entre dois timestamps. Observe que $subtract aceita apenas dois argumentos e não pode receber vários operandos como $add. Qualquer argumento null ou ausente resulta em null.
| Categoria | Matemática |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $subtract: [ <expressão1>, <expressão2> ] }
⚙️ Parâmetros
| minuendo | Um valor numérico, uma data ou uma expressão que resolva para qualquer um deles. |
|---|---|
| subtraendo | Um número (milissegundos) ou uma expressão de data a subtrair do minuendo. |
Retorno:A diferença numérica; data menos data retorna milissegundos; data menos milissegundos retorna uma data
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $subtract: calcular preço após o desconto
db.orders.aggregate([
{ $project: {
finalPrice: { $subtract: ['$price', '$discount'] }
} }
])
Saída:
{ '_id': 1, 'finalPrice': 90 }
{ '_id': 2, 'finalPrice': 45 }
📌 Notas
- Aceita exatamente dois argumentos; mais de dois gera erro
- Data menos data retorna milissegundos; divida por 86400000 para obter dias
- Qualquer argumento null ou ausente resulta em null