计算每个客户的总消费
执行过程:
1. 执行 map 操作过程
- 定义
map(映射) 函数来处理每个文档: - 映射每个文档的
cust_id, 并处理items - 先遍历
items,分别对每个items成员qty和price相乘再求总和
var mapFunction2 = function() {
var key = this.cust_id;
var value = 0;
for (var idx = 0; idx < this.items.length; idx++) {
value += this.items[idx].qty * this.items[idx].price;
}
emit(key, value);
};
2. 定义reduce 函数有两个参数 keyCustId 和 valuesPrices
valuesPrices是数组,由keyCustId分组, 收集value而来reduces函数 对valuesPrices数组 求和.
var reduceFunction2 = function(keyCustId, valuesPrices) {
return Array.sum(valuesPrices);
};
3. 执行 map-reduce 函数
db.orders.mapReduce(
mapFunction2,
reduceFunction2,
{ out: "map_reduce_example" }
)mongodb MapReduce
标签:key 定义 out limit var value item nbsp oct