mongodb mapreduce 遇到的 Nan

本文详细介绍了MongoDB中reduce函数的行为准则及要求,包括不应访问数据库、对外部系统的影响、处理单值键的行为等,并强调了reduce函数对于相同键可能被多次调用的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值