2014-05-07 27 views
2

我想使用MongoDB的MapReduce功能並訪問大量數據。我使用的是MongoDB的Map Reduce輸出類型之間的差異

INLINE OutputType 
    MapReduceCommand cmd = new MapReduceCommand(dbCollection, 
       MapReduceTest.map, 
       MapReduceTest.reduce, 
       null, 
       MapReduceCommand.OutputType.INLINE, 
       query); 

小數據集時,這工作得很好,但它可以用於處理數據高達16MB,這是我的問題。 我想訪問一個非常大的數據集,但我還沒有找到關於其他選項MERGE, REDUCE, REPLACE的任何好文檔。 有誰知道區別?

回答

1

下面是來自官方的文檔文本:

更換 - 更換的,如果與集合名集合中存在的內容。

merge - 如果輸出集合已經存在,則將新結果與現有結果合併。如果現有文檔與新結果具有相同的密鑰,請覆蓋該現有文檔。

reduce - 如果輸出集合已經存在,則將新結果與現有結果合併。如果現有文檔與新結果具有相同的關鍵字,請將reduce函數應用於新文檔和現有文檔,並用結果覆蓋現有文檔。

參考: http://docs.mongodb.org/manual/reference/command/mapReduce/#output-to-a-collection-with-an-action