【问题标题】:MongoDb aggregationMongoDb 聚合
【发布时间】:2012-05-10 09:12:07
【问题描述】:

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

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

在 mondoDb 中使用 group 函数,我想按特定键对我的集合进行分组并返回 1 行,这会更频繁地发生

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

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

【问题讨论】:

    标签: java mongodb mongodb-query aggregation-framework nosql


    【解决方案1】:

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

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

    【讨论】:

    • 更新:稳定的 Mongo 2.2 版本现已正式发布,聚合框架现已提供生产质量。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-09-03
      • 2017-10-24
      • 1970-01-01
      • 1970-01-01
      • 2019-06-18
      • 2022-01-05
      • 2012-10-24
      • 2012-07-02
      相关资源
      最近更新 更多