我有一個代表虛擬拍賣的每個文件的集合。我想查找給定時間段內最常用的物品ID。在SQL中,我想SELECT item, COUNT(*) as count
與GROUP BY item
和通常的排序和限制。有沒有與此相當的mongodb?mongodb:字段按發生次數排序
0
A
回答
2
MongoDB在這裏有幾個選項。
- 在版本2.1.0+中,您可以使用新的Aggregation Framework。有一個轉換表here。
- 在舊版本中,你可以使用一個Map/Reduce
- 對於聚集的簡單版本,你CA使用特殊aggregation operators。
這些選項中的每一個都有不同的語法和不同的速度。
在這些情況下,您可能會發現這些選項相對較慢。 Map/Reduce作業旨在「離線」運行,通常作爲「cron作業」或「計劃任務」。請注意,如果您計劃執行此操作,您可能需要預先彙總此數據。
0
或者您可以使用MapReduce,然後對輸出集合進行排序,或者您可以使用命令group,但是您需要在客戶端執行大部分排序和限制。
舉例group命令:
db.coll.group(
{key: { a:true, b:true },
cond: { active:1 },
reduce: function(obj,prev) { prev.csum += obj.c; },
initial: { csum: 0 }
});
另外值得一提的是在MongoDB中(2.2)的下一個穩定版本,他們將發佈一個新aggregation framework,這將使得該操作更容易。
相關問題
- 1. mongodb按字段排序的排序
- 2. MongoDB:按發生次數排序不同的密鑰
- 3. 比較TreeBag按發生次數排序
- 4. 按每行多個字段中的字符串發生次數排序結果
- 5. 按發生次序排序IEnumerable
- 6. 在mongodb中按多個字段排序
- 7. MongoDB按多個字段排序
- 8. Mongodb按兩個字段排序
- 9. MongoDB:按字段存在然後按字母順序排序
- 10. 按字段排序排序
- 11. 計數列值按發生次數排序
- 12. 按數據庫中發生的次數排序記錄
- 13. 對發生次數的排序歷史
- 14. 按MySQL字段中的字數排序
- 15. 按總髮生次數排序篩選結果
- 16. 按發生次數對mysql進行排序
- 17. SQL statment,總結髮生次數,按照出現次數從高到低排序
- 18. javabean按字段排序
- 19. 按字段與SQLite排序
- 20. 按字段排序UNIX
- 21. MySQL按字段排序
- 22. SQLite按字段排序
- 23. SQL。按字段排序
- 24. 按Sum字段排序
- 25. 按兩個字段的總數排序
- 26. Solr:按字段數排序文檔
- 27. 按字段排序數據表
- 28. 按字段排序數據表
- 29. PHP按字段排序數組?
- 30. Mongodb - 與多個字段的ROR排序
我現在有一個每小時運行一次到一個單獨表格的Map/Reduce操作。 – 2012-07-06 23:56:09