首页 > 解决方案 > 查询获取 Spring 中 MongoDb 的前 10 名用户

问题描述

所以基本上我有一个看起来像这样的集合(省略其他字段):

[{
 user: mail1@test.com
},

{
 user: mail1@test.com
},
{
 user: mail1@test.com
},
{
 user: mail2@test.com
},
{
 user: mail2@test.com
},
{
 user: mail3@test.com
}

]

我正在寻找一种查询 MongoDB 的方法,以获得前 10 名活跃用户(DB 中记录最多的用户)。有没有一种简单的方法来获得这个,也许只是使用界面?

标签: springmongodbspring-boot

解决方案


也许一个简单的组聚合会给你所需的结果?

db.Users.aggregate(
[
    {
        $group: {
            _id: "$user",
            count: { $sum: 1 }
        }
    },
    {
        $sort: { count: -1 }
    },
    {
        $limit: 10
    },
    {
        $project: {
            user: "$_id",
            _id: 0
        }
    }
])

推荐阅读