monodb 聚合框架 Aggregation

【MongoDB 实战】 06 MongoDB 聚合框架(Aggregation Framework) 在说 MongoDB 聚合框架之前,我们先了解下关系型数据库中的聚集函数和分组统计,我们常见的SQL五大的聚集函数有如下所示: 可见SQL 中的聚集函数是用来对数据表中的数据进行筛选过滤,然后对过滤后的数据进行一系列的函数运算。 MongoDB 中的聚合框架(Aggregation Framework)和SQL 中的聚集函数一样,它是一个计算框架,作用在一个或几个集合上面,对集合中的数据进行... 阅读详情

前提:本人采用mongodb和spring整合的project


与SQL对照的操作
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;

import com.mongodb.AggregationOutput;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBObject;

@Service
public class NetflowDao  {
          @Autowired
	  MongoTemplate mongoTemplate;
                                     public static void main(String[] args) {
				        	// 假设表中列有 _id  name age  score 
					         Map matchMap = new HashMap();
				        	 //where 条件 年龄大于12 
				        	 matchMap.put("age", new BasicDBObject("$gt", 12));
				        	 
					         Map groupMap = new HashMap();
					         groupMap.put("name","$name");
					         groupMap.put("age","$age");
					         
					         BasicDBObject   Basicgroup= new BasicDBObject();
					         
					         //分组条件
					         Basicgroup.put("_id", groupMap);
					         //计算总分
					         Basicgroup.put("totalscore", new BasicDBObject("$sum", "$score"));
					         
					         BasicDBObject group=new BasicDBObject("$group", Basicgroup);
					         
					         
					            //分页条件 每次查询返回条数
								BasicDBObject groupOptlimit = new BasicDBObject();
								groupOptlimit.put("$limit", 10);
								//从多少条开始查询
								BasicDBObject groupOptskip = new BasicDBObject();
								groupOptskip.put("$skip", 0);
								
						        BasicDBObject orderbyOpt = new BasicDBObject();
						        //设置总分排序 正序1 倒序-1
						        orderbyOpt.append("$sort", new BasicDBObject("totalscore",1));
						          
						        AggregationOutput aggrResult= mongoTemplate.getCollection("shopnetflowday").aggregate( matchMap,group,orderbyOpt,groupOptskip,groupOptlimit);
							 		Iterator<DBObject> iter = aggrResult.results().iterator();
									while (iter.hasNext()) {
										System.out.println(iter.next());
									}
						}




}


STM32F103C8T6+HX711实战:从零打造智能体重秤(附OLED显示与语音播报) 本文详细介绍了基于STM32F103C8T6微控制器和HX711称重模块,从零构建智能体重秤的完整实战教程。内容涵盖硬件选型、系统架构、驱动编写、数据滤波校准算法,并实现了OLED显示与语音播报功能。该项目是嵌入式学习的综合性实践,尤其适合作为毕业设计课题,帮助开发者掌握传感器应用、数据处理及人机交互等核心技能。 阅读详情

相关推荐

基于51单片机的多功能计算器全套设计

当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且人脑比较容易出错。计算器作为一种快速通用的计算工具方便了用户的使用。计算器可谓是我们最亲密的电子伙伴之一。本设计着重在于分析计算器设计开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。 本设计是以STC89C52单片机为核心的计算器模拟系统设计,输入采用5×8矩阵键盘,可以进行加、减、乘、除等十几种数字运算,同时支持括号

runweipa的博客 1743

MongoDB Aggregation 聚合框架

MongoDB Aggregation 聚合框架 文章目录MongoDB Aggregation 聚合框架前言1.MongoDB 聚合框架是什么2.管道(Pipeline)和步骤(Stage)3.聚合运算的基本格式4.步骤5.步骤中的运算符5.1 $match5.2 $project5.3 $group6.MQL & SQL 对比6.1 例16.2 例27.特殊步骤7.1 $unwind7.2 $bucket7.3 $facet8.MongoDB Compass(推荐工具)8.1 基本使用8.2 导

谢文峰的博客 1863

SFF-8654接口引脚定义全解析:从SAS到U.2的高速硬件连接核心

在高速数据存储与传输领域,接口标准是连接主机与存储设备、确保信号完整性与协议互通性的物理基础。其核心原理在于通过精确定义的物理引脚和电气特性,承载不同的高速串行通信协议,如SAS和PCIe。这类高密度连接器的技术价值在于以紧凑的形态支持多协议兼容与高速率传输,满足了企业级存储、高性能计算对带宽和可靠性的苛刻要求。典型的应用场景包括服务器硬盘背板连接、NVMe U.2固态硬盘直连以及外部存储扩展。本文聚焦于SFF-8654(亦称Mini SAS HD)这一关键接口,深入剖析其引脚定义、信号分区(如高速数据通道

weixin_29188043的博客 717

ElasticSearch Aggregations(聚合)

然而,在两种情况下,Elasticsearch 无法找出这些信息:未映射的字段(例如,在跨多个索引的搜索请求的情况下,只有其中一部分字段在映射中有定义) 和 纯脚本。在聚合类型定义的同一级别,可以选择性的定义一组附加的聚合,但这只有在你定义的聚合具有 bucketing 性质时才有意义。将为其父聚合生成的桶计算子聚合。对嵌套聚合的级别/深度没有硬性限制(可以将一个聚合嵌套在一个“父”聚合下,而这个父聚合本身是另一个更高级聚合的子聚合)。根据聚合的性质,每种类型的聚合定义自己的主体(例如,特定字段上的。

TMesh的博客 1037

单细胞测序避坑指南:为什么你的免疫组库数据总出问题?5‘转录组7个关键细节

本文深度解析了5'端单细胞测序技术在免疫组库研究中的应用与常见问题。文章从5'端建库的分子机制入手,重点剖析了其在捕获TCR/BCR序列上的独特优势,并系统梳理了从样本处理、文库构建到数据质控全流程中7个最易出错的细节,为研究者提供了一份实用的避坑指南,旨在帮助提升免疫组库数据的质量和可靠性。

weixin_29208327的博客 482

MAX96712在车载摄像头系统中的带宽分配与传输能力计算解析

在计算摄像头带宽与传输接口的关系时,需要考虑视频流的像素分辨率、帧率、颜色深度等因素。以 MAX96712 这种 GMSL2 产品为例,它支持每个链路在正向方向以 3Gbps 或 6Gbps 的固定速率工作。

weixin_43199439的博客 3331

MongoDB聚合框架:大数据处理的瑞士军刀

在当今数据驱动的时代,如何高效地处理和分析海量数据成为了开发者面临的重要挑战。MongoDB作为最流行的NoSQL数据库之一,其强大的聚合框架(Aggregation Framework)为我们提供了灵活而高效的数据处理能力。本文将深入探讨MongoDB聚合框架的核心概念、使用方法和最佳实践,帮助您掌握这一"大数据处理的瑞士军刀"。

vvilkin的学习备忘 1602

【第24例】华为 IPD 体系 | RMT 需求管理团队

RMT需求管理团队

产品线负责人 1767

MongoDB学习总结五(详细记录MongoDB Aggregation聚合框架常见操作)

本文详细记录使用Aggregation聚合框架对MongoDB数据库的常见操作,包含筛选project、过滤match、排序sort、分组group by、略过skip、限制limit和分页查询设计思路等等,文中仍然有部分地方未能够充分理解,如_id一直保持展示的状态,尽管经过project筛选,后期补充。相比较与MongoTemplate操作,Aggregation聚合操作更加便捷、代码更加简洁。

彼岸尚有荣光在,应不断记录总结!!! 4650

低功耗设计-ir drop的signoff corner怎么选择?

2.tt的(tt85 是比较接近芯片真实工作情况的);我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?有要求就用要求的就好,没要求前两种看公司需求。3.signoff文档要求的;有几个方向,看公司需求吧。

m0_61544122的博客 1595

混合精度训练与推理:平衡性能与效率

在深度学习领域,模型的训练和推理通常需要大量的计算资源和时间。随着模型规模的不断增大,如大型语言模型、复杂的视觉模型等,对计算资源的需求也呈指数级增长。混合精度训练与推理技术应运而生,它通过在训练和推理过程中同时使用不同精度的数据类型,在保证模型性能的前提下,显著提高计算效率,减少内存占用。本文的目的是全面介绍混合精度训练与推理技术,包括其原理、实现方法、应用场景以及相关工具和资源,帮助读者深入理解并掌握该技术,从而在实际项目中更好地平衡性能与效率。

操作系统内核探秘的博客 1068

monog 高级操作(聚合)

聚合aggregate 聚合(aggregate)主要用于计算数据,类似sql中的sum()、avg() 聚合(aggregate)是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage)组成的管道,可以对每个阶段的管道进行分组、过滤等功能,然后经过一系列的处理,输出相应的结果。 db.集合名称.aggregate({管道:{表达式}}) 管道 在mon...

onionnmmn的博客 1517

pip install mysql出现error: subprocess - exited-with-error的解决方案

本文主要介绍了pip install mysql出现error: subprocess - exited-with-error的解决方案,希望能对使用mysql的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 5万+

JDK1.8 HashMap中put源码分析

一、存储结构 在JDK1.8之前,HashMap采用桶+链表实现,本质就是采用数组+单向链表组合型的数据结构。它之所以有相当快的查询速度主要是因为它是通过计算散列码来决定存储的位置。HashMap通过key的hashCode来计算hash值,不同的hash值就存在数组中不同的位置,当多个元素的hash值相同时(所谓hash冲突),就采用链表将它们串联起来(链表解决冲突),放置在该has...

weixin_33798152的博客 397

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

MongoDB Projection

版权所有,未经许可,禁止转载 章节MongoDB 入门 MongoDB 优势 MongoDB 安装 MongoDB 数据建模 MongoDB 创建数据库 MongoDB 删除数据库 MongoDB 创建集合 MongoDB 删除集合 MongoDB 数据类型 MongoDB 插入文档 MongoDB 查询文档 MongoDB 更新文档 MongoDB 删除文档 MongoDB Projection...

吴吃辣 5378

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

java map .put 方法

java map .put 方法 put("1","111");再put一次: put("1","222");get("1")  >>结果是222,求解释 111 呢?? 一个Map中不能包含相同的key,每个key只能映射一个value,你的“1”映射了两个value(“111”和"222"),所以是不行的,自动帮你覆盖了

u011498933的专栏 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

MongoDB中强大的统计框架Aggregation使用实例解析

MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 这篇文章主要介绍了MongoDB中强大的统计框架Aggregation使用实例解析,文中举了Python和Java使用Aggregation的数据统计例子进行讲解,需要的朋友可以参考下 听说项目里面Aggregation用的多,那就专门针对这个多多练习一

Zhangxi 3949

MongoDB_聚合框架的学习(Aggregation Framework)

基本概念 Aggregation Framework就像是管道(pipeline),用于对一连串的文档进行处理。 常用方法 $project 可以重构数据 $sort() 排序 $match 可以实现类似query的功能,用于对文档集合进行筛选,之后得到的文档子集做聚合 $limit 限制返回个数 $skip 同上 $unwind 可以将一个包含数组的文档切分成多个, 比如你的文档有 中有个数组字段 A, A中有10个元素, 那么经过 $unwind处理后会产生10个文档,

Maybe_do_it的博客 660

利用 MongoVUE 工具实现mysql 库到 copy 到mongodb

下载MongoVUE http://yunpan.cn/csSvdRKkzf5Kg  提取码 6fb7

tzwjava的专栏 1371

mongodb mms安装

1·首先到下面网址里注册一个账号 注册成功后 可以通过手机 或者其他方式获取激活码 https://mms.mongodb.com 2.登陆到mms   3 根据monodb 所在环境 选择  配置 Monitoring Agents       4.配置成功之后会 跳转MMS的管理页面如下

tzwjava的专栏 1179

架构高可用mongodb 集群文档

文档地址

tzwjava的专栏 622

mongodb gui客户端 studio 3T

在这寂静的夜晚 非常开心和大家介绍一款功能非常全面的mongodb的GUI攻击 studio 3T 首先省去繁琐的搜索 直接给大家发一个百度网盘下载地址https://pan.baidu.com/s/1pco2X4MAC3DoIrTjBiD-Ugvnei studio3T 有30天的使用时间 国内有好事者已经写好了破解脚本 只要到期执行一下 又可以开心使用了!!(网盘下载压缩包已经包含 ...

tzwjava的专栏 278

屏幕不止一种:OLED、LCD1602字符屏、TFT/IPS图形屏和串口屏怎么用,这与TTY和PTY又有什么关系

要图像、要曲线、要一块比现在更大的画面,面前的屏就不止一种了。OLED、LCD1602字符屏、TFT/IPS图形屏和串口屏怎么用,又该按什么来挑?这与TTY和PTY又有什么关系?

Lxx_Zw的博客 313

5个陷阱和解决方案:MongoDB源码中自动化测试平台的数

在现代软件工程实践中,自动化测试平台扮演着至关重要的角色,它确保了系统的稳定性和迭代的可靠性。然而,随着业务数据量的快速增长以及并发写入需求的不断上升,基于MongoDB构建的自动化测试平台常常面临性能瓶颈和数据一致性问题。本文将围绕MongoDB源码中一个关键模块——,通过一行一行代码的解读,揭示其设计原理、性能调优点及常见陷阱,适合希望深入理解数据库实现机制的高级工程师。

wuchangjian的专栏 169

MongoDB迁移之后,Spring Data 与 Hibernate 的职责分界:一场数据访问层的静默重构

MongoDB迁移后,Spring Data与Hibernate的职责边界被重新划定:一个守护文档弹性,一个锚定关系严谨。这篇文章用对比表格和4类典型场景,帮你看清哪些请求该交给谁,避免“能做”却“不该做”的架构陷阱。😮 如果你正面临混合持久化选型,这篇盘点值得一读。

2601_94912102的博客 261

用Ai8051帮我写一个FX3UPLC 程序

用Ai8051帮我写一个FX3UPLC 程序AI这个需求我得先跟您确认清楚,因为"用Ai8051U写一个FX3U PLC程序"这个说法本身存在歧义,我不能凭猜测直接给您出一套代码。

czhaii的专栏 296
上一篇: mongodb:SQL to Aggregation Mapping Chart
下一篇: hdfs 知识点
rtnull
博客等级 码龄16年 5粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值