当我在Mongo数据库上运行Map-Reduce时,我通常会得到类似于以下内容的结果:
{ _id:, value: { : , ... } }
有没有办法省略该value: { ... }
部分并直接插入value
结果中的内容?基本上,我希望得到如下结果:
{ _id:, : , ... }
这样我就可以将结果合并回一个遵循这种格式的现有集合.
我还有一个关于Map-Reduce的另一个问题:是否可以通过a map
或reduce
函数访问另一个集合?
MapReduce只返回{_id:some_id,value:some_value}形式的文档
"some_value"不一定必须是嵌入式文档,但在大多数情况下,它允许通过Map Reduce函数计算多个变量.Reduce函数返回的文档必须与输入的格式相同,因为Reduce函数可能会针对任何给定的_id值重复运行.
有关Map Reduce如何工作的详细步骤,请参阅MongoDB Cookbook配方的"Extras"部分,标题为"使用版本化文档查找最大值和最小值" http://cookbook.mongodb.org/patterns/finding_max_and_min/ 这应该可以更好地理解Map Reduce的工作原理,以及为什么输出必须采用{_id:some_id,value:some_value}格式的原因
可以执行增量Map Reduce,它将合并多个Map Reduce函数的结果. http://www.mongodb.org/display/DOCS/MapReduce#MapReduce-IncrementalMapreduce
最后,目前无法使用Map Reduce一次访问多个集合.此功能有一项功能请求,但未安排将其添加到任何即将推出的版本中.
https://jira.mongodb.org/browse/SERVER-970