$mapFn has signature ($item, $mapEmit) where $item is item from data and $mapEmit is emit function
$reduceFn has signature ($key, $items, $reduceEmit) where $key is the key the data are grouped by,
$items is the group and $reduce emit is an emit function
$mapEmit has signature ($key, $value) where $key is the key the data are grouped by and $value is
a transformed item
$reduceEmit has signature ($obj) where $obj is the transformed group