mongoDB进行分组操作

一、$group 进行分组

1、每个职位的雇员人数:

db.getCollection(‘emp‘).aggregate(

[

   {‘$group‘:{

‘_id’:‘$job‘,

job_count:{‘$sum‘:1}

    }

}

]

)

2、每个职位的总工资

db.getCollection(‘emp‘).aggregate(

[

   {‘$group‘:{

‘_id’:‘$job‘,

job_salaryt:{‘$sum‘:‘$salary‘}

    }

}

]

)

3、每个职位的平均工资

db.getCollection(‘emp‘).aggregate(

[

      {‘$group‘:{

‘_id’:‘$job‘,

job_salaryt:{‘$sum‘:‘$salary‘},

job_salary_avg:{‘$avg‘:‘$salary‘}

                   }

}

]

)

4、每种职位的最高与最低工资

db.getCollection(‘emp‘).aggregate(

[

      {‘$group‘:{

‘_id’:‘$job‘,

max_salaryt:{‘$max‘:‘$salary‘},

min_salary:{‘$min‘:‘$salary‘}

                   }

}

]

)

5、每个职位的工资

db.getCollection(‘emp‘).aggregate(

[

{

‘$group’:{

‘_id‘:‘$job‘,

‘salary_data‘:{‘$push‘:‘$salary‘}

}

}

]

)

6、每个职位的人员

db.getCollection(‘emp‘).aggregate(

[

{

‘$group’:{

‘_id‘:‘$job‘,

‘position_name‘:{‘$addToSet‘:‘$name‘}  //addToSet,如果有重复的人名,保留一个

}

}

]

)

二、$project 进行数据的规则显示

1、别名

db.getCollection(‘emp‘).aggregate(

[

{‘$project‘:{

‘_id‘:0

‘职位‘:‘$job‘,

‘name‘:1

}

}

]

)

2、年薪

db.getCollection(‘emp‘).aggregate(

[

{

‘$project‘:{

‘name‘:1,

‘salary‘:{‘年薪‘:{‘$multiply‘:[‘$salary‘,12]}}

}

}

]

)

原文地址:https://www.cnblogs.com/qiyc/p/9053909.html

时间: 2024-10-07 02:41:13

mongoDB进行分组操作的相关文章

MongoDB 的分组操作 In C#

C#对mongodb的分组查询操作,主要通过脚本或Aggregate方法来实现,以下通过一些实例作解析: 参考资料:http://www.tuicool.com/articles/2iqUZj   http://www.cnblogs.com/vnii/archive/2012/08/23/2652891.html   http://www.cnblogs.com/zhwl/archive/2013/12/19/3482140.html 1. 根据任务id进行分组,统计每个任务的浏览数量. pu

MongoDB 的聚集操作

聚合引言 聚集操作就是出来数据记录并返回计算结果的操作.MongoDB提供了丰富的聚集操作,能够检测和执行数据集上的计算.运行在mongod上的数据聚集简化了代码和资源限制. 像查询一样,在Mongo的聚合操作使用collections作为输入,并返回一个或多个document作为输出. 聚合模式 聚合管道 MongoDB2.2引入了一个新的聚合框架:聚合管道,这是基于数据处理管道概念的模型.文档输入一个多阶段的管道并将文档转化为一个聚合的结果. 最基本的管道阶段提供了过滤器(Filters)来

mongodb group分组(最详细、最通俗、最易理解的讲解)

和数据库一样group常常用于统计.MongoDB的group还有很多限制,如:返回结果集不能超过16M, group操作不会处理超过10000个唯一键,好像还不能利用索引[不很确定]. Group大约需要一下几个参数. 1.key:用来分组文档的字段.和keyf两者必须有一个 2.keyf:可以接受一个javascript函数.用来动态的确定分组文档的字段.和key两者必须有一个 3.initial:reduce中使用变量的初始化 4.reduce:执行的reduce函数.函数需要返回值. 5

Ruby操作MongoDB(进阶)-CRUD操作

MongDB数据库的使用离不开CRUD操作.什么是CRUD,就是创建文档,读取文档信息,更新文档和删除文档. key-value键值对标记 在MongoDB的Ruby驱动中,Key_value键值多次出现.而且有时会出现语法上的巧合,这取决于在使用的Ruby版本中如何申明. 在文档创建步骤中,1.9及之后版本支持以下语法: document={name:"Tom",age:20}. 但是如果你使用的是2.2或者更高的版本,你可以用双引号将你的key包起来.如: document={&q

【翻译】MongoDB指南/CRUD操作(二)

[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关注),写确认(写关注) 1 更新文档 1.1 更新 MongoDB提供下列方法用于更新一个集合 db.collection.updateOne() 更新使用指定过滤器匹配到的文档,即使过滤器匹配到多个文档,也只会更新一个文档. 3.2版本新增特性. db.collection.updateMany(

【翻译】MongoDB指南/CRUD操作(一)

[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删除文档. 创建操作 执行创建或者插入操作可向集合中添加文档.如果集合不存在,插入操作会创建此集合. MongoDB提供下列方法向集合中插入文档: db.collection.insert() db.collection.insertOne()  3.2版本新增 db.collection.inser

Python mongoDB 的简单操作

#!/usr/bin/env python # coding:utf-8 # Filename:mongodb.py from pymongo import MongoClient,ASCENDING,DESCENDING import datetime # connection with mongoclient client=MongoClient() # getting a database db=client.test # getting a collection collection=d

MongoDB Shell 常用操作

数组查询 数组查询 MongoDB 中有子文档的概念,一个文档中能方便的嵌入子文档,这与关系性数据库有着明显的不同,在查询时,语法有一些注意点. 例子代码,假如我们的一个集合(tests)中存在标签键,有如下模式: tags: [ObjectId] 查询含有某个标签 ID 的文档 db.tests.find({tags: tagId}); 我现在有一组标签 tagIds,即是数组,需要查询含有该数组中任一元素的文档,此时需要用到 $in 操作符 db.tests.find({tags: {$in

MongoDB的CRUD操作

1. 前言 在上一篇文章中,我们介绍了MongoDB.现在,我们来看下如何在MongoDB中进行常规的CRUD操作.毕竟,作为一个存储系统,它的基本功能就是对数据进行增删改查操作. MongoDB中的增删改查操作,不同于我们熟悉的关系数据库中的操作.在关系数据库中,比如MySQL,我们通常使用SQL语句对数据库进行增(INSERT)删(DELETE)改(UPDATE)查(SELECT).MongoDB在对数据进行操作过程中,使用的是Document进行数据操作.在对数据库进行操作的时候,使用Do