我的 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
、$sort
和 count
命令来实现这一点。
最佳答案
您可以按如下方式进行:
- 您必须对用户进行分组并计算条目的出现次数
- 使用 $sort 参数,您可以按条目数降序排序
通过使用 $limit,您可以检索前 10 个用户。
db.myCollection.aggregate( {$group : {_id : "$user", "count" : {$sum : 1}}}, {$sort : {"count" : -1}}, {$limit : 10} )
关于mongodb - 在 mongodb 中使用等效计数来查找出现次数最多的顶级用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20946594/