使用mongodb中的count等效项来查找最大出现次数的顶级用户

时间:2014-01-06 09:17:44

标签: mongodb aggregation-framework

我的格式为

的mongoDB数据
{ "_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位用户。如何使用聚合的$group$sortcount命令来实现此目的。

1 个答案:

答案 0 :(得分:2)

您可以按照以下方式执行此操作:

  1. 你必须加强用户和计算条目的出现次数
  2. 使用 $ sort 参数,您可以按递减顺序排列的条目数
  3. 使用 $ limit ,您可以检索前10位用户。

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