`
I_conquer
  • 浏览: 24594 次
  • 性别: 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后的代码就不写了,根据自己的业务需求做处理就好了

 

分享到:
评论

相关推荐

    PHP中的mongodb group操作实例

    主要介绍了PHP中的mongodb group操作实例,本文给出了3个group命令的用法,需要的朋友可以参考下

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

    主要介绍了Thinkphp使用mongodb数据库实现多条件查询方法,修改了mongodb驱动文件来实现复合查询、多条件查询,需要的朋友可以参考下

    Mongodb聚合函数count、distinct、group如何实现数据聚合操作

    上篇文章给大家介绍了Mongodb中MapReduce实现数据聚合方法详解,我们提到过Mongodb中进行数据聚合操作的一种方式——MapReduce,但是在大多数日常使用过程中,我们并不需要使用MapReduce来进行操作。在这边文章中,...

    MongoDB权威指南(中文版)高清

    755.5 地理空间索引 765.5.1 复合地理空间索引 785.5.2 地球不是二维平面 78第6章 聚合 796.1 count 796.2 distinct 796.3 group 806.3.1 使用完成器 826.3.2 将函数做为键使用 846.4 MapReduce...

    深入云计算 MongoDB管理与开发实战详解pdf.part1

    详细而深入,对MongoDB的开发和管理方法进行了详细的讲解,也对MongoDB的工作机制进行了深入的探讨。注重实战,通过实际中的案例为读者讲解使用MongoDB时遇到的各种问题,并给出了解决方案。本书旨在帮助云计算初学...

    电子书:MongoDB权威指南(中文版)

    785.5.2 地球不是二维平面 78第6 章 聚合 796.1 count 796.2 distinct 796.3 group 806.3.1 使用完成器 826.3.2 将函数做为键使用 846.4 MapReduce 846.4.1 例1:找出集合中的所有键 856.4.2 例2...

    深入解析MongoDB聚合与索引:提升数据库效能的关键策略

    通过具体实例,我们将了解MongoDB聚合框架的使用方法,包括各种聚合管道阶段(如$match, $project, $group等)的运用。同时,深入探讨MongoDB索引的类型(如单键索引、复合索引、多键索引等),并分析索引的创建、...

    mongoTemplate实现统计和分组

    附件为mongoDB之Java通过group函数来实现统计和分组的文档描述

    深入云计算 MongoDB管理与开发实战详解pdf.part2

    详细而深入,对MongoDB的开发和管理方法进行了详细的讲解,也对MongoDB的工作机制进行了深入的探讨。注重实战,通过实际中的案例为读者讲解使用MongoDB时遇到的各种问题,并给出了解决方案。本书旨在帮助云计算初学...

    mongodb实现数组对象求和方法实例

    mongodb在计算集合数组值时候,我们通常会想到使用$group与$sum,但是如果是数组里面多个json对象,并且还需要根据条件过滤多个对象的内容该如何处理? 现在让我们来实现它,假设mongodb中有个user集合,其数据内容...

    mongodb-aggregation-framework

    内容MongoDB聚合基础汇总介绍管道的概念聚合结构和语法$ match:过滤文档使用$ project 使用表达式光标式方法阶段$ group阶段$放开$ lookup阶段利用MongoDB的灵活架构mongoimport 模式的重要性探索模式迁移架构观看...

    完整的monodb封装(.net/c#版)

    lstColName, Document query, JqGridParam jqParam, ref int count),封装了通用的获取前台表格数据的方法,将在工程中减少大量数据库访问代码,有了这个后对前台表格类查询我们可以不用在Control里使用linq或者封装...

    Python在groupby分组后提取指定位置记录方法

    下面为大家介绍一些groupby的用法,以便能够更加方便地进行数据处理。 我们往往在使用groupby进行信息提取时,往往是求分组后样本的一些统计量(max、min,var等)。如果现在我们希望取一下分组后样本的第二条记录,...

    terraform-azurerm-cosmosdb-mongodb:Terraform模块来创建一个天蓝色的cosmosdb帐户

    适用于mongodb的Cosmosdb帐户Terraform模块,用于在Azure中使用数据库集使用mongodb创建一个CosmosDB帐户。局限性该模块仅支持用于MongoDB的Cosmos DB API,并且不能禁用EnableMongo功能。用法该示例显示了具有单个...

    pymongo中group by的操作方法教程

    使用 pymongo 进行 group by 操作有两种基本方式,他们都是 mongodb 的原生命令,于 Collection 对象上调用。 def aggregate(self, pipeline, **kwargs): def group(self, key, condition, initial, reduce, ...

    COMPSCI399-Group-Project

    MERN 堆栈是使用 Javascript/Node 进行全堆栈 Web 开发的想法。 克隆或下载 $ git clone https://github.com/ygua699/COMPSCI399-Group-Project.git $ npm install 项目结构 LICENSE package.json backend/ ...

    mongodb-replset:Rackspace Heat模板,可使用Chef在多个服务器上部署MongoDB副本集

    OS :: Heat :: ResourceGroup 机架空间::云::服务器 OS :: Nova :: KeyPair OpenStack用户名,密码和租户ID。 &gt;= v0.2.8 : pip install python-heatclient 我们建议在安装客户端。 用法示例 这是一个如何使用...

    Group_Chat:使用NodeJ,.MongoDB .express和socket.io建立的群组和私人聊天,用于联网程序设计项目

    GPchat-使用nodeJS进行私人和群聊 用法 npm install &gt; node server.js 执照 您可以查看完整许可证 该项目根据MIT许可条款获得许可。

    pymongo中聚合查询的使用方法

    在mysql中我们经常会用到count、group by 等查询,在mongodb中我们也可以使用聚合查询。 假设有这样的一组数据 价格 里面记录了每种水果的价格,现在我要统计一下,各种水果在这张表中出现的次数,如果不用聚合...

    localmentor.me:2018年Spring的COP 4331 Group 11项目

    barnacle 运行yarn (这会将所有必需的依赖项下载到node_modules文件夹中) 根据提供的.env.example创建一个名为.env的文件您将需要一个MongoDB数据库运行yarn dev并导航到给定的地址UCF COP 4331 Group 11项目,...

Global site tag (gtag.js) - Google Analytics