1
所以我使用mongo進行mapreducing,有時(但並非總是如此),我的reduce數組的第一個元素是一個bson對象,其中包含另一個reduce數組。我處理它的方式是將該數組與外部數組結果結合起來。爲什麼MongoDB的map/reduce有時會返回一個對象作爲reduce函數的一部分?
我不明白爲什麼會發生這種情況,並且找不到任何文檔。任何人都可以指出我正確的方向,所以我可以肯定我正確處理這個問題?
所以我使用mongo進行mapreducing,有時(但並非總是如此),我的reduce數組的第一個元素是一個bson對象,其中包含另一個reduce數組。我處理它的方式是將該數組與外部數組結果結合起來。爲什麼MongoDB的map/reduce有時會返回一個對象作爲reduce函數的一部分?
我不明白爲什麼會發生這種情況,並且找不到任何文檔。任何人都可以指出我正確的方向,所以我可以肯定我正確處理這個問題?
http://www.mongodb.org/display/DOCS/MapReduce#MapReduce-ReduceFunction有你的答案(但你必須仔細閱讀)。請參閱引用部分:
「請注意,結果文檔與map函數發出的文檔具有相同的結構,這非常重要,因爲在針對給定鍵運行reduce函數時,不能保證處理每個單一的值(或用戶名)。事實上,reduce函數可能需要運行多次。「
基本上減少不會對每一個「關鍵」跑「一次全部」,但可調用「增量」,以處理與已經處理結果的新成果。