Requirements for the reduce Function
The reduce function has the following prototype:
function(key, values) {
...
return result;
}
The reduce function exhibits the following behaviors:
- The reduce function should not access the database, even to perform read operations.
- The reduce function should not affect the outside system.
- MongoDB will not call the reduce function for a key that has only a single value.
- The reduce function can access the variables defined in the scope parameter.
Because it is possible to invoke the reduce function more than once for the same key, the following properties need to be true
- he type of the return object must be identical to the type of the value emitted by the map function to ensure that the following operations is true:
· reduce(key, [ C, reduce(key, [ A, B ]) ] ) == reduce( key, [ C, A, B ] )
· reduce( key, [ reduce(key, valuesArray) ] ) == reduce( key, valuesArray )
- the order of the elements in the valuesArray should not affect the output of the reduce function, so that the following statement is true:
reduce( key, [ A, B ] ) == reduce( key, [ B, A ] )
reduce函数有可能在执行任务是可能会被调用多次,
reduce函数中接收的value参数的形式,必须是和reduce函数返回的结果value的形式一致。