No MongoDB, o
$multiply
operador de pipeline de agregação multiplica os números e retorna o resultado. Para usar o
$multiply
operador, passe os números para o operador em uma matriz. Os argumentos podem ser qualquer expressão válida, desde que resolvam para números.
Exemplo
Suponha que tenhamos uma coleção chamada
data
com o seguinte documento:{ "_id" : 1, "a" : 1000, "b" : 2, "c" : 3 }
Podemos usar o
$multiply
operador dentro de um pipeline de agregação para multiplicar dois ou mais desses números juntos. Multiplicar 2 números
Aqui está um exemplo de multiplicação de dois números.
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $multiply: [ "$a", "$b" ] } }
}
]
)
Resultado:
{ "a" : 1000, "b" : 2, "result" : 2000 }
Multiplicar 3 números
Aqui está novamente, exceto que desta vez nós multiplicamos todos os três números juntos.
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
c: 1,
result: { $multiply: [ "$a", "$b", "$c" ] } }
}
]
)
Resultado:
{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 }
Valores negativos
Os números podem ser positivos ou negativos.
Suponha que adicionamos o seguinte documento à nossa coleção:
{ "_id" : 2, "a" : 1000, "b" : -2, "c" : -3 }
Agora vamos executar os exemplos anteriores novamente e ver o que acontece:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $multiply: [ "$a", "$b" ] } }
}
]
)
Resultado:
{ "a" : 1000, "b" : 2, "result" : 2000 } { "a" : 1000, "b" : -2, "result" : -2000 }
E aqui está com três números:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
c: 1,
result: { $multiply: [ "$a", "$b", "$c" ] } }
}
]
)
Resultado:
{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 } { "a" : 1000, "b" : -2, "c" : -3, "result" : 6000 }
Quando você multiplica um número negativo por um número positivo, o produto é sempre negativo. Mas quando você multiplica dois números negativos ou dois números positivos, o produto é sempre positivo.
Adicione seu próprio número
Você não está necessariamente restrito apenas aos números no(s) documento(s). Você pode usar seus próprios números se precisar multiplicar todos os campos por um valor fixo.
Exemplo:
db.data.aggregate(
[
{ $project: {
_id: 0,
result: { $multiply: [ "$a", "$b", "$c", 2.5 ] } }
}
]
)
Resultado:
{ "result" : 15000 } { "result" : 15000 }