2014-01-06 26 views
2

我在格式使用數量相當於在MongoDB中找到頂級用戶,最大occurence

{ "_id" : ObjectId("5284a1ac5fac01f0099cc6a8"), "date" : ISODate("2013-11-15T12:40:53Z"), "data_id" : "data_1", "application_id" : "myapplication", "user" : "user_1"} 

{ "_id" : ObjectId("5284a1ac5fac01f0099cc6a8"), "date" : ISODate("2013-11-16T12:40:53Z"), "data_id" : "data_2", "application_id" : "myapplication", "user" : "user_2"} 

{ "_id" : ObjectId("5284a1ac5fac01f0099cc6a8"), "date" : ISODate("2013-11-16T12:40:53Z"), "data_id" : "data_3", "application_id" : "myapplication", "user" : "user_1"} 

我想找到這在MongoDB的最大條目數排名前10位的用戶我MongoDB的數據。如何使用聚合的$group$sortcount命令來實現此目的。

回答

2

如下你可以這樣做:

  1. 你必須GRUP用戶&數項
  2. 使用的發生$排序參數,可以按遞減順序
  3. 通過條目的數量進行排序
  4. 通過使用$ limit您可以檢索前10個用戶。

    db.myCollection.aggregate(
        {$group : {_id : "$user", "count" : {$sum : 1}}}, 
        {$sort : {"count" : -1}}, 
        {$limit : 10} 
    ) 
    
+0

你確定'{$排序:{數:-1}}'這個部分會工作。其餘的工作像冠軍 – veer7

+0

,所有的作品。 我很接近答案,你抓住它快:)。 接受你的回答 – veer7

+0

是的,我在我的機器上試過,它的工作原理。 –

相關問題