如果下面是使用MongoDB的Map/Reduce排序工作吗?
Analytic.collection.map_reduce(map, reduce,
:query => {:page => subclass_name},
:sort => [[:pageviews, Mongo::DESCENDING]]).find.to_a
它不会排序pageviews
。或者,如果它是散列数组:
Analytic.collection.map_reduce(map, reduce,
:query => {:page => subclass_name},
:sort => [{:pageviews => Mongo::DESCENDING}]).find.to_a
它也不起作用。我认为它必须是一个数组的原因是指定第一个字段进行排序等。我也尝试过一个平面数组,而不是像上面第一个代码列表中的数组数组一样,它也不工作。
不工作?这是规格:http://api.mongodb.org/ruby/current/Mongo/Collection.html#map_reduce-instance_method
我明白了。也许规范可以提到它在地图之前,而不是最终的结果。另外,为什么我们需要为map/reduce排序?在我看到map/reduce的用法的情况下,文档(记录)的顺序无关紧要。 – 2010-09-21 23:08:51
它用于聚合数据的一个子集。假设您想要对您网站的最近500次访问进行汇总。你可以在你的访客集合上做一个MapReduce,按日期排序,限制为500.没有排序,你无法真正做到这一点。 – kristina 2010-09-22 21:01:20