6

_statssum、count、min、max、および sumsqr を提供する組み込み関数があることは知っています。私が知りたいのは、マップ削減の方法で最大値だけを計算する方法です。もう少し情報がなければ機能するreduce関数を思いつくことはできません。

私が考えることができる唯一のことは、値の並べ替えを使用して最初の値を選択することです。

私のマップ関数は次のようになります。

function(doc){
  emit(null, doc.value);
}
4

2 に答える 2

8

couchdb wiki は、 sum の簡単な例を提供します。

値の合計を返す代わりに、max の reduce 関数は値配列の最大値を返す必要があります。最大値の計算は可換、連想などであるため、rereduce について心配する必要はありません。

function (key, values, rereduce) {
    // Return the maximum numeric value.
    var max = -Infinity
    for(var i = 0; i < values.length; i++)
        if(typeof values[i] == 'number')
            max = Math.max(values[i], max)
    return max
}
于 2012-04-11T16:32:43.380 に答える