1

我无法从 mongodb MapReduce 文档(http://docs.mongodb.org/manual/applications/map-reduce/)中理解这一段 - 临时集合(优化?)有什么好处(商业案例、好处等)?

临时收藏

map-reduce 操作在处理期间使用临时集合。完成时,map-reduce 操作重命名临时集合。因此,您可以使用相同的目标集合名称定期执行 map-reduce 操作,而不会影响中间状态。定期生成统计输出集合时使用此模式。

4

1 回答 1

2

假设您是 { a : 1 } 形式的文档集合,并且您定期需要 a 的平均值。还可以假设您想运行一个 map-reduce 作业,该作业将每个文档的“a”字段增加一个。然而,当这个 map reduce 正在运行时,也有可能获得 a 平均值的作业正在运行。在这种情况下,如果您没有临时集合,则平均值可能会因 map reduce 作业尚未完成而被抛出,从而使集合处于中间状态。

为了避免这种情况,map reduce 作业可以在临时集合中工作,直到完成。完成后,它将临时集合重命名为目标名称,有效地换入新集合。这样,当您取“a”的平均值时,您会得到一个不受 map-reduce 作业部分影响的值。

如果您希望我澄清一下,请告诉我。

于 2013-04-01T16:30:41.507 回答