В MongoDB, $multiply
Операторът на конвейера за агрегиране умножава числата заедно и връща резултата.
За да използвате $multiply
оператор, предайте числата на оператора в масив.
Аргументите могат да бъдат всеки валиден израз, стига да се разделят на числа.
Пример
Да предположим, че имаме колекция, наречена data
със следния документ:
{ "_id" : 1, "a" : 1000, "b" : 2, "c" : 3 }
Можем да използваме $multiply
оператор в рамките на конвейер за агрегиране, за да умножи две или повече от тези числа заедно.
Умножете 2 числа
Ето пример за умножаване на две числа заедно.
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $multiply: [ "$a", "$b" ] } }
}
]
)
Резултат:
{ "a" : 1000, "b" : 2, "result" : 2000 }
Умножете 3 числа
Ето го отново, освен че този път умножаваме и трите числа заедно.
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
c: 1,
result: { $multiply: [ "$a", "$b", "$c" ] } }
}
]
)
Резултат:
{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 }
Отрицателни стойности
Числата могат да бъдат положителни или отрицателни.
Да предположим, че добавяме следния документ към нашата колекция:
{ "_id" : 2, "a" : 1000, "b" : -2, "c" : -3 }
Сега нека стартираме предишните примери отново и да видим какво се случва:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
result: { $multiply: [ "$a", "$b" ] } }
}
]
)
Резултат:
{ "a" : 1000, "b" : 2, "result" : 2000 } { "a" : 1000, "b" : -2, "result" : -2000 }
И ето го с три числа:
db.data.aggregate(
[
{ $project: {
_id: 0,
a: 1,
b: 1,
c: 1,
result: { $multiply: [ "$a", "$b", "$c" ] } }
}
]
)
Резултат:
{ "a" : 1000, "b" : 2, "c" : 3, "result" : 6000 } { "a" : 1000, "b" : -2, "c" : -3, "result" : 6000 }
Когато умножите отрицателно число по положително число, продуктът винаги е отрицателен. Но когато умножите две отрицателни числа или две положителни числа, продуктът винаги е положителен.
Добавете свой собствен номер
Не е задължително да сте ограничени само до числата в документа/ите. Можете да използвате свои собствени числа, ако трябва да умножите всички полета по фиксирана сума.
Пример:
db.data.aggregate(
[
{ $project: {
_id: 0,
result: { $multiply: [ "$a", "$b", "$c", 2.5 ] } }
}
]
)
Резултат:
{ "result" : 15000 } { "result" : 15000 }