MongoDB中的临时收集

时间:2013-03-31 08:18:38

标签: mongodb mapreduce aggregation-framework nosql

我无法理解mongodb MapReduce文档(http://docs.mongodb.org/manual/applications/map-reduce/)中的这一段 - 临时收集(优化?)对(商业案例,福利等)有用吗?

  

临时收集

     

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

1 个答案:

答案 0 :(得分:2)

让我们说一下{a:1}形式的文档集合,并定期你想要a的平均值。让我们说你想运行一个map-reduce作业,为每个文档增加一个'a'字段。但是,有可能在运行此map reduce时,同时获得a的平均值的作业正在运行。在这种情况下,如果您没有临时集合,则可能会因地图缩减作业尚未完成而使集合处于中间状态而抛弃平均值。

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

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