根据 Mongo MR 文档 (http://www.mongodb.org/display/DOCS/MapReduce#MapReduce-ShardedEnvironments),分片数据的 MR 作业输出可以将结果写入另一个分片集合,但只有_ID可以用作分片键。
有没有办法发出或设置将分配给结果文档的_ID?假设使用用户ID或客户编号,它本身用作分片键?
Map-Reduce生成的文档中的_id
与您在映射阶段emit(...)
中使用的键相同。它可以是任何类型的,包括(子)文档,但它将始终作为最终文档中的_id
字段存在。
如果您有一个目标(分片)集合,使用 ObjectId
以外的某个自定义值作为_id
的值,则可以将分片 map-reduce 与输出一起使用到该集合中。
此外,分片 map-reduce 也存在一些限制,特别是 map-reduce 不会触发拆分或迁移,并且不支持 limit
选项。