引用http://www.mongodb.org/display/DOCS/MapReduce#MapReduce-Parallelism
截至目前,单个mongod进程上的MapReduce作业是单线程的.这是由于当前JavaScript引擎的设计限制.我们正在研究解决此问题的替代方法,但是现在如果要并行化MapReduce作业,则需要使用分片或在代码中进行聚合客户端.
没有并行性,与更简单或更传统的查询和数据聚合方法相比,MapReduce有哪些好处?
为避免混淆:问题不是"面向文档的DB比传统关系数据库有什么好处"
使用MapReduce而不是更简单或更传统的查询的主要原因是它可以简单地执行简单查询所不能做的事情(即聚合).
一旦需要聚合,使用MongoDB有两个选项:MapReduce和group命令.group命令类似于SQL的"group by",并且受限于必须在单个数据库响应中返回其所有结果.这意味着只有在少于4MB的结果时才能使用组.另一方面,MapReduce可以执行任何"分组依据"的操作,但可以将结果输出到新的集合,因此结果可以根据需要进行.
此外,并行性即将到来,所以有一些练习:)