0

エミット関数でキーの値を0として指定し、reduce 後にコレクション内の列の合計を意図したとおりに正しく指定します。私の質問は、これがどのように機能するのか理解できないということです。

私はこのように放出しています。

function(){ エミット(0, this.total); }

誰かが私にこれでの作業を説明してもらえますか? 前もって感謝します。

4

2 に答える 2

2

MapReduce はトリッキーです。それを理解するには、考え方を変える必要があります。あなたの特定のケースでは、グループ化オプションを気にしないことをmongoに伝えました。このように発行すると、すべての が識別子0this.totalの 1 つのバッチに送信され、reduce ステップでまとめて集約されます。これは、次のケースが同一であることも意味します。

function(){ emit(0, this.total); }
function(){ emit(1, this.total); }
function(){ emit('asdf', this.total); }
function(){ emit(null, this.total); }

バッチ名が異なっていても、保存結果につながります。

于 2013-06-26T09:25:55.127 に答える