2011-12-01 63 views
0

我在我的系統中有投票,但我想按計算投票和項目的新鮮度進行排序。記錄的相對陳舊性

我知道在SQL中,應該很容易做到這一點 - 與GETDATE()DATEDIFF()和一些數學魔術。

我該怎麼去做這個在Mongo中?是否需要使用map-reduce?我記得聽說map-reduce被阻止 - 所以不推薦用於高流量的網站頁面查詢?

謝謝

回答

0

在MongoDB中,你可以排序的任何文檔中的字段的值,但是你不能排序的計算值。

但是,在這種情況下,難道你不能在日期(降序)而不是新鮮度上排序嗎?這不會給出相同的排序順序嗎?

+0

是的,但我想要投票考慮 - 我不希望投票數爲1的新項目高於昨天的投票數100投票 – Madd0g

+0

如果您只需要進行排序,也許可以對在檢索數據後在客戶端上。如果你想使用臨時計算的結果來篩選出一些結果,也許你將不得不使用map reduce。使用map reduce記住的事情是,因爲它使用Javascript,所以一次只能運行一個map reduce(這是使用Spider Monkey Javascript引擎的限制)。 –

+0

由於您提到的原因,我不想依靠map-reduce。我需要這個分頁結果,這怎麼能在客戶端完成呢?在我看來,我需要獲取比頁面大小更多的項目,然後僅顯示其中的一些,感覺很尷尬 – Madd0g