2013-08-29 17 views
2

我有一堆從Github報廢的信息庫數據。每個存儲庫都有一個language密鑰和pymongo,我可以使用db.distinct('language')列出數據庫中的所有語言。我想根據出現次數對列表進行排序,以便第一種語言是我的列表是與大多數存儲庫關聯的語言。是否可以在一個查詢中執行此操作,而不是查詢數據庫中每種語言的計數?MongoDB:按發生次數排序不同的密鑰

+0

見http://api.mongodb.org/python/current/api/pymongo/collection.html#pymongo.collection.Collection.aggregate – JohnnyHK

回答

1

一個可能的解決方案是簡單的地圖/縮小。好處是你可以用它來聚合額外的信息,比如提交數量,提交者數量,文件數量......

雖然這對於你想要的東西來說可能太重了。我並不完全熟悉現代聚合框架,但我相信如果除map/reduce之外還有其他解決方案,那就是您可能找到它的地方。

3

感謝Nicolas Rinaudo和JohnnyHK,我找到了解決方案。這個想法是根據語言對每個存儲庫進行分組,並對文檔數量進行求和。然後可以用新密鑰對這些組進行排序。

​​