mongodb mapreduce 遇到的 Nan

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 ] )

  • the reduce function must be idempotent. Ensure that the following statement is true:

·      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的形式一致。

猜你喜欢

转载自robustwang.iteye.com/blog/2342410
NaN