`
I_conquer
  • 浏览: 25960 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

mongodb group用法

阅读更多

group是较为复杂的聚合操作,与关系型数据库中的group by类似。

group先选定分组依据的键,然后将集合根据键值分组,之后再聚合每一组内的数据产生查询结果。

 

//MongoDB
db.coll.group({
    'key':{//分组依据
        'a':true
    },
    'cond':{'active':1},//查询条件
    'reduce': function(obj,prev)//聚合操作
    {
          prev.csum += obj.c;
    },
    'initial':{'csum':0}//指定聚合计数器的初始对象
});

 

 

 

下面是在Java中的处理方法:

 

//统计函数 由js实现
        String reduce = "function(doc, prev){" +
                "            prev.csum += 1;" +
                "        }";
        Query query = Query.query(Criteria.where("active").exists(true));
        DBObject result = mongoTemplate.getCollection("XXX").group(new BasicDBObject("a", true),
                query.getQueryObject(),
                new BasicDBObject("csum", 0),
                reduce);//MongoTemplate是spring提供操作mongoDB的
        Map<String,Map<String,Double>> map = result.toMap();

 得到Map后的代码就不写了,根据自己的业务需求做处理就好了

 

分享到:
评论

相关推荐

    mongodb group aggregate项目实战笔记

    原始代码中使用了传统的 `group` 方法来进行数据统计: ```javascript db.msds_accessrecord.group({ keyf: function(doc) { var date = new Date(doc.addtime); var dateKey = "" + date.getFullYear() + "-" + ...

    Thinkphp使用mongodb数据库实现多条件查询方法

    在Thinkphp中实现多条件查询时,可以使用框架提供的查询构建器(Query Builder),但是当涉及到MongoDB的复合查询时,比如需要使用AND和OR逻辑运算符进行多条件筛选,官方文档中提供的方法可能不足以满足需求。...

    MongoDB教程之聚合(count、distinct和group)

    在本教程中,我们将深入探讨MongoDB中的三个关键聚合操作:`count`、`distinct`和`group`。 1. `count` 函数: `count` 方法用于计算集合中符合特定条件的文档数量。在MongoDB中,你可以直接调用`db.collection....

    浅析mongodb中group分组

    MongoDB的`group`命令是数据聚合的一种方式,主要用于对数据进行分组并进行统计分析。在MongoDB中,当你需要根据某个字段的值来汇总数据时,`group`命令非常有用。以下是对MongoDB中`group`分组功能的详细解析: 1....

    php操作MongoDB使用说明

    除此之外,还有`update()`方法用于更新数据,`remove()`方法用于删除数据,`group()`方法用于分组统计,`aggregate()`方法用于聚合操作等。在实际开发中,还需要熟悉这些高级功能,以便更好地利用MongoDB的特性。 ...

    MongoDB 权威指南.pdf

    ### MongoDB权威指南知识点...通过上述内容,我们可以看出,《MongoDB权威指南》主要围绕MongoDB的基本概念、安装配置、操作命令、高级特性等方面进行了详细介绍,旨在帮助读者全面掌握MongoDB的使用方法和技术要点。

    mongoDB的官方中文文档

    MongoDB的官方中文文档是学习和掌握MongoDB的重要资源,尤其对于中文用户来说,可以更直观地理解其特性和操作方法。 首先,让我们深入了解一下MongoDB的基础知识: 1. **数据模型**:MongoDB的数据模型基于JSON...

    Spring Data MongoDB中文文档

    - **Spring Data MongoDB** 支持 MongoDB 的聚合框架,可以使用 `Aggregation` 和 `AggregationOperation` 来构建复杂的聚合管道。 - 聚合框架支持多种操作,包括但不限于 `$match`, `$group`, `$sort`, `$project` ...

    C# 操作MongoDB源码 含连接MongoDB库

    在C#中操作MongoDB,通常需要使用MongoDB官方提供的.NET驱动程序,该驱动程序允许开发者通过C#代码与MongoDB服务器进行交互。本资料包包含了C#操作MongoDB的源代码示例,涵盖了连接MongoDB数据库、执行各种操作的...

    mongodb3.1.3的源码

    通过深入研究MongoDB 3.1.3的源码,开发者可以了解数据库系统的设计原理,提高解决问题的能力,并可能发现性能优化的新方法。同时,这也是一个学习C++高级编程、网络编程、并发控制和分布式系统的好材料。

    Mongodb 视频

    了解这些驱动的使用方法和最佳实践,能提高开发效率。 八、安全与认证 确保MongoDB的安全性同样重要。学习如何设置用户权限、启用身份验证、使用SSL加密通信,以及防火墙配置等,可以防止未授权访问和数据泄露。 ...

    MongoDB基础教学文档

    与SQL相比,它们具有不同的语法和方法,例如使用`insertOne()`、`find()`、`updateOne()`和`deleteOne()`等方法。 4. **查询语言**:MongoDB的查询语言(MQL)是一种声明式的查询语言,允许用户通过JSON格式的查询...

    mongodb的小例子

    7. **聚合框架**:MongoDB的聚合框架允许对数据进行分析和处理,类似SQL的GROUP BY和JOIN操作。它可以用于统计、分组、计算平均值等任务。 8. **索引**:为了提高查询性能,可以创建索引。`db.collection.create_...

    Mongodb视频-燕十八 mongodb视频教程全集21讲+mongodb高级实战开发视频教程

    - 系统监控工具的使用方法。 - 内存、CPU等资源的优化策略。 **第10讲:安全性** - 认证机制的配置方法。 - 授权模型的理解与实践。 - 数据加密技术和安全策略的应用。 **第11讲:备份与恢复** - 定期备份的重要性...

    MongoDB参考手册-新

    例如,使用`find()`方法可以查找满足特定条件的文档,而`$match`、`$group`等聚合管道操作符可用于复杂的数据分析。 4. **索引**:索引可以显著提升查询性能。MongoDB支持单字段、复合字段、多键索引、地理空间索引...

    mongoDB-CURD操作-----JAVA

    MongoDB是一种流行的开源、分布式文档数据库,常用于处理大规模数据。在Java开发中,与MongoDB的...记住,实践是学习的最佳途径,动手尝试这些示例,结合MongoDB_Demo中的代码,你会更快掌握MongoDB与Java的结合使用。

    mongodb 数据库基本操作.doc

    - **使用`use`命令**:在MongoDB shell中,可以使用`use`命令来选择一个数据库或创建一个新的数据库。例如: ```shell use mydatabase ``` 上述命令会创建(或选择)名为`mydatabase`的数据库。 #### 三、插入...

    mongodb 使用手册

    MongoDB 使用手册 MongoDB 是一个高性能、开源、无模式的文档型数据库,适用于现代应用程序开发。它以其灵活的数据模型、强大的查询能力以及分布式架构而备受青睐。本手册将涵盖MongoDB的安装、使用和基本语法,...

Global site tag (gtag.js) - Google Analytics