$reduce
¶3.4版的新功能。
将表达式应用于数组中的每个元素,并将它们组合为单个值。
$reduce
具有以下语法:
领域 | 类型 | 描述 |
---|---|---|
input |
数组 | 可以是任何 可解析为数组的有效表达式。有关表达式的更多信息,请参见表达式。 如果自变量解析为 如果参数不解析为数组或 |
initialValue |
表达 | value 之前的初始累积集in 将应用于input 数组的第一个元素。 |
in |
表达 | 一个有效的表达式,该表达式以从左到右的顺序 在计算 |
如果input
解析为空数组,则$reduce
返回
initialValue
。
例 | 结果 |
---|---|
"abc" |
|
{ "sum" : 15, "product" : 48 } |
|
[ 1, 2, 3, 4, 5, 6 ] |
名为的集合events
包含概率实验的事件。每个实验可以有多个events
,例如连续滚动模具或
连续绘制几张卡片(无需更换)以达到所需的结果。为了获得实验的总体概率,我们需要将实验中每个事件的概率相乘。
步骤:
$group
对进行分组,experimentId
并用于$push
创建具有每个事件概率的数组。$reduce
with $multiply
可以将of的元素相乘并将其组合probabilityArr
为单个值并进行投影。该操作返回以下内容:
名为的集合clothes
包含以下文档:
每个文档包含一个discounts
数组,其中包含每个项目当前可用的折价优惠券。如果每个折扣都可以一次应用于该产品,则可以通过$reduce
对discounts
数组中的每个元素应用以下公式
来计算最低价格
:(1-折扣)*价格。
该操作返回以下内容: