mongodb分组统计
一、对字段(protocol)下的不同类型进行分组统计:
db.getCollection('xxx').aggregate([
{ "$group": {
"_id": {
"protocol": "$protocol"
},
"protocolCount": { "$sum": 1 }
}}
])
或
db.getCollection('bp0501_dev').aggregate([
{ "$group": {
"_id": "$protocol",
"protocolCount": { "$sum": 1 }
}}
])
加过滤:
db.getCollection('bp0501_dev').aggregate([
{"$match":{"userid":"bbdz"}},
{ "$group": {
"_id": "$protocol",
"protocolCount": { "$sum": 1 }
}}
])
对应的mongodbTemplate写法:
field是要统计的字段名(对应上边的protocol字段,protocolCount是统计名称),tbName是对应的表名("xxx")
----都是String类型
Aggregation agg = Aggregation.newAggregation(Aggregation.group(field).count().as("sum")
);
AggregationResults results = ppmongoTemplate.aggregate(agg,tbName, BasicDBObject.class);
List list = results.getMappedResults();
二、统计userid(字段,类型是数组)内相同数据出现的次数:
db.getCollection('xxx').aggregate( [
{$unwind:"$userid"},
{$group:{_id:"$userid",count:{$sum:1}}},
{$project:{_id:0,count:1,userid:"$_id"}}
])
加分页:
db.getCollection('bp0501_dev').aggregate( [
{$unwind:"$userid"},
{$group:{_id:"$userid",count:{$sum:1}}},
{$project:{_id:0,count:1,userid:"$_id"}},
{$skip:0},
{$limit:5}
])
对应的mongodbTemplate写法:
Aggregation agg = Aggregation.newAggregation(Aggregation.unwind(field),Aggregation.group(field).count().as("sum")
);
注:默认会把分组的字段放在_id 上,(这里_id:0)去掉(及修改)_id字段名为userid, 查询出来的统计字段是sum,而count:1是修改名字sum为count
{$unwind:"$userid"} //分解userid这个数组
{$project:{_id:0,count:1,userid:"$_id"}} //这句小编还不知怎么写
详细请看下面的链接
如:
1、修改前
[
{
"_id": "5ce745712bd4f9d6f374e620",
"sum": 5
}
]
2、修改后
[
{
"count" : 5.0,
"userid" : "5ce745712bd4f9d6f374e620"
}
]
由于表数据不能复制和转载,在这里直接分享博主的连接,大家自己看吧,这里只做分享:
原文来自:https://blog.csdn.net/weixin_43678764/article/details/85262969
https://blog.csdn.net/ruoguan_jishou/article/details/79289369
MongoDB统计文档(Document)的数组(Array)中的各个元素出现的次数:
https://www.cnblogs.com/hapjin/p/7944404.html
mongodb分组统计相关推荐
- MongoDB 分组统计
[摘要] MongoDB 在进行分组统计时如果面对一些比较复杂的计算情况,往往会遇到 shell 脚本过于复杂的问题.而集算器 SPL 语言,则因其有丰富的函数库及易用性恰好能弥补 Mongo 这方面 ...
- java 对 mongoDB 分组统计操作 以及一些常用操作
为什么80%的码农都做不了架构师?>>> /*** * 功能描述:* * @author :xiaoyu 创建日期 :2014年2月19日 下午2:23:44* * @para ...
- mongodb按照时间分组统计
使用spring data mongodb v1.8 需求1. 数据结构如下.说明:改集合记录的是公司各个系统的访问情况(localPath表示系统,requestTime 表示请求时间,字符串类型, ...
- mongodb aggregate按日期分组统计及spring mongo实现
如需转载请注明出处: mongodb aggregate按日期分组统计及spring mongo实现 实现的需求 传入毫秒级开始时间戳和结束的时间戳,根据当前状态currentStatus.statu ...
- MongoDb数组操作 - unwind解包、group分组统计、sort排序
MongoDB统计文档(Document)的数组(Array)中的各个元素出现的次数 一,问题描述 [使用 unwind 操作符 "解包" Document 里面的Array中的每 ...
- java mongo分组统计_mongodb 分组 topN
[摘要] MongoDB 对于 TopN 功能的需求使用其 shell 脚本来实现有些复杂,而集算器 SPL 语言,则因其离散性.灵活性恰好能弥补 MongoDB 实现方面的不足.若想了解更多,请前往 ...
- sql server 经典SQL——分组统计
一.分组统计 数据 name dtdate result aa 2017-01-04 1 aa 2017-01-04 1 aa 2017-01-05 1 aa 2017-01-05 0 bb 2017 ...
- pandas使用groupby函数对dataframe进行分组统计、使用as_index参数设置分组聚合的结果中分组变量不是dataframe的索引(index)
pandas使用groupby函数对dataframe进行分组统计.使用as_index参数设置分组聚合的结果中分组变量不是dataframe的索引(index) 目录
- R语言进行数据聚合统计(Aggregating transforms)计算滑动窗口统计值(Window Statistics):使用R原生方法、data.table、dplyr等方案、计算滑动分组统计
R语言进行数据聚合统计(Aggregating transforms)计算滑动窗口统计值(Window Statistics):使用R原生方法.data.table.dplyr等方案.计算滑动分组统计 ...
- Elasticsearch Aggregation 多个字段分组统计 Java API实现
2019独角兽企业重金招聘Python工程师标准>>> 现有索引数据: index:school type:student ----------------------------- ...
最新文章
- 如何修改Sql2005注册服务器名称 {转载}
- python 数组队列
- GitHub下载某分支的代码
- mysql的优化总结
- jieba结巴分词--关键词抽取_初学者 | 知否?知否?一文学会Jieba使用方法
- JAVA共通関数--システム時刻を取得する(1)
- 教育计算机缩写,{教育管理}计算机缩写术语完全介绍宝典.docx
- 什么是 Power BI?
- [C语言]二维数组传参的格式(详细+总结)
- 新高考十二种选科情况下,再选科目的考室安排的探索2.0版
- 使用OSM通过ArcGis显示城市线路地图
- LeetCode/LintCode 题解丨一周爆刷字符串:乱序字符串
- 18种为你的网站引流的好方法
- oracle中英文文献,库存管理外文文献及中英文翻译.doc
- Windows 10 Edt LTSC中文系统安装教程
- 请求服务接口提示访问被拒绝
- MHz 和 Mbps的区别
- 迅为4418开发板邮票孔与连接器版本区别
- 去中心化的前端构建工具 — Vite
- Google Ananlytics 与百度统计
热门文章
- 使用PicGo和阿里云OSS建立云图床
- 关于修改双系统默认启动项设置
- 一:使用FreeIPA安装Kerberos和LDAP( IPA-Client安装)
- Visual Studio Code (VS Code)安装教程(配图超详细)
- 计算机硬盘的文件怎么删除文件,电脑硬盘删除文件怎么恢复
- lintcode刷题——罗马数字转整数
- VirtualBox运行出现“0x00000000指令引用的0x00000000内存。该内存不能为written”
- 【第二周】吴恩达团队AI for Medical Diagnosis课程笔记
- 科来kelai工具的安装与使用-改包回放包工具
- 帮助用户连接网络打印机工具