如果下面是使用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