为什么MongoDB的map / reduce有时会返回一个对象作为reduce函数的一部分?

时间:2012-05-14 13:36:23

标签: mongodb mapreduce

所以我使用mongo进行mapreducing,有时候,但并非总是如此,我的reduce数组的第一个元素是一个bson对象,其中包含另一个reduce数组。我处理它的方法是将该数组与外部数组结果相结合。

我不明白为什么会这样,并且找不到任何文件。任何人都可以指出我正确的方向,所以我可以肯定我正在处理这个问题吗?

1 个答案:

答案 0 :(得分:2)

http://www.mongodb.org/display/DOCS/MapReduce#MapReduce-ReduceFunction有你的答案(但你必须仔细阅读)。请参阅引用部分:

“请注意,结果文档与map函数发出的文档具有相同的结构。这很重要,因为当针对给定键运行reduce函数时,不保证处理该键的每个值(或者用户名)。实际上,reduce函数可能不止一次运行。“

基本上,reduce不会在每个“键”上“一次性”运行,但可以“逐步”调用以处理已处理结果的新结果。