2

如何使用 mongdoDb 聚合编写 simial 查询

select count(*) as ccount from a group by a.someField order by ccount desc limit 1

使用 mondoDb 中的组函数,我想按特定键对我的集合进行分组并返回 1 行,这种情况发生得更频繁

下面的 Java 代码,返回列表,在字段 someField 上应用 group by 并返回元素集合,其中每个元素都有 2 个字段,“someField”和“count”(出现次数)我想避免在客户端上进行第二次迭代一边找出最大计数

new GroupCommand(myCollection,
                 new BasicDBObject("someField ", true),
                 null,
                 new BasicDBObject("count", 0),
                "function(key,val){ val.count++;}", 
                 null);
4

2 回答 2

1

MongoDB 的 group 命令无法使用 SQL 的 order 或 limit 之类的东西。当前开发版本(2.1 版)中的聚合框架提供了 $sort 和 $limit 运算符:

http://www.mongodb.org/display/DOCS/Aggregation+Framework

于 2012-04-30T18:40:13.210 回答
0

在 mongoDB 3 中,您可以使用限制并跳过:

http://docs.mongodb.org/manual/reference/operator/aggregation/

于 2015-05-04T17:12:22.773 回答