0

Map/Reduce 结果是否可以永久存储,但不能排序?例如,

coll = Analytic.collection.map_reduce(map, reduce, 
                                        :out => 'analyticsCachedResult')

以上内容永久存储但未排序。

要即时对其进行排序,它可以是

coll.find({}, :sort => ['value.pageviews', :desc]) 

但是你能在内部对表格进行排序吗?我认为如果为排序键创建索引,那么它几乎和内部排序一样好?

或者,我们如何对其进行排序,并将其保存为新集合analyticsSortedCachedResult

我想稍后,要使用 Mongoid 获取任何集合,它是由

coll = Mongoid.master.collection('analyticsCachedResult')

? 但我只是担心,Mongoid.master.collection('foo')即使该集合不存在,since 仍会返回一个集合。但看起来它也没有保存到 MongoDB 中。

4

1 回答 1

1

MongoDB 中的 MapReduce 输出到常规集合,因此您可以使用您习惯的所有功能,包括排序,甚至对输出执行另一个 MapReduce 传递。但是,您可能会遇到对排序键上没有索引的大型集合进行排序的问题。

于 2010-09-23T21:42:54.437 回答