搜尋

首頁  >  問答  >  主體

求解mongodb mapreduce 遍歷values的問題。

在mongodb mapreduce的reduce函數中,參數values是一個數組,可以用values.forEach進行遍歷。

function(key, values){
    //values 是一个数组
    values.forEach(function(val){
        //val即为数组里的元素
    });
}

但是values比較大時,values會被拆分存儲,在原本Reduce函數中的forEach只遍歷了第一層的數據,無法遍歷所有的元素。那請問如何遍歷values裡的所有元素?

ringa_leeringa_lee2774 天前632

全部回覆(1)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-04-28 09:08:06

    mapreduce 中還有一個參數 scope ,可以放置 js 函數中所用到的變量,你可以將 value 資料暫存到其中,這樣就能跨越單一 reduce 函數獲得資料了。不過既然是 values 被拆分了,就說明 values 內的資料量較大,如果只是強行把所有的 values 組合起來,並不是一個好的辦法,內存會吃緊。最好還是最佳化 map 函數,較少 values 資料量。

    回覆
    0
  • 取消回覆