写点什么

MongoDB 中的 Group By

  • 2012-03-04
  • 本文字数:629 字

    阅读完需:约 2 分钟

为了回应用户对简单数据访问的需求,MongoDB 推出了聚合框架(Aggregation Framework)。该框架使用声明性管道符号来支持类似于SQL Group By 操作的功能,而不再需要用户编写自定义的JavaScript 例程。

大部分管道操作会在“aggregate”子句后会跟上“$match”打头。它们用在一起,就类似于SQL 的from 和where 子句,或是MongoDB 的find 函数。“$project”子句看起来也非常类似SQL 或MongoDB 中的某个概念(和SQL 不同的是,它位于表达式尾端)。

接下来介绍的操作在MongoDB 聚合框架中是独一无二的。与大多数关系数据库不同,MongoDB 天生就可以在行/ 文档内存储数组。尽管该特性对于全有全无的数据访问十分便利,但是它对于需要组合投影、分组和过滤操作来编写报告的工作,却显得相当复杂。“$unwind”子句将数组分解为单个的元素,并与文档的其余部分一同返回。

“$group”操作与SQL 的Group By 子句用途相同,但是使用起来却更像是LINQ 中的分组运算符。与取回一行平面数据不同,“$group”操作的结果集会呈现为一个持续的嵌套结构。正因如此,使用“$group”可以返回聚合信息,例如对于每个分组中的实际文档,计算文档整体或部分的数目和平均值。

查看英文原文: http://www.infoq.com/news/2012/02/MongoDB-Aggregation

2012-03-04 09:225424
用户头像

发布了 125 篇内容, 共 37.7 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

Android技术分享|【Android踩坑】怀疑人生,主线程修改UI也会崩溃?

anyRTC开发者

android 音视频 UI 移动开发 主线程

【React源码系列】React Hydrate原理及源码剖析

爱切图的木子老师

React react源码 React服务端渲染原理 React Hydrate

TiSpark 如何扩展 Spark

TiDB 社区干货传送门

开源一夏 | Spring MVC深度学习

叶秋学长

开源 Spring MVC 8月月更

SpringMVC(六、声明式事务控制)

开源 springmvc 8月月更

RT-Thread记录(四、RT-Thread 时钟节拍和软件定时器)

矜辰所致

RT-Thread 8月月更

融云 | 云办公时代,企业通讯录的技术选型

融云 RongCloud

企业 云办公

一文了解如何托管SVN储存库,以及版本控制的更佳选择

龙智—DevSecOps解决方案

svn 版本控制 版本管理 版本控制系统

Oracle SQL Language Reference手册中的错误

我不吃六安茶

ANTLR

网易DBA团队出品“Mysql实用手册”正式开源,Github日下载破万

冉然学Java

Java MySQL 数据库 开源 架构

Spark 性能调优

TiDB 社区干货传送门

性能调优

ITSM入门指南 | IT团队如何向客户提供端到端的IT服务?

龙智—DevSecOps解决方案

ITSM ITSM软件 ITSM解决方案

元宇宙-原来挺简单

刘旭东

WebGL 数字孪生 元宇宙 blender Shapr3D

TiDB 查询优化及调优系列(五)调优案例实践

TiDB 社区干货传送门

TiSpark 原理之下推丨TiDB 工具分享

TiDB 社区干货传送门

2022 CCF中国开源大会会议通知(第四轮)

CCF开源发展委员会

开源一夏|eTS UI的Text组件怎么设置文本垂直排列

坚果

开源 OpenHarmony 8月月更

「周大福」WeOps助力周大福开启IT运维数字化转型之路

嘉为蓝鲸

带你了解TensorFlow pb模型常用处理方法

华为云开发者联盟

人工智能 模型

TiFlash DeltaTree Index 的设计和实现分析

TiDB 社区干货传送门

如何开启企业数字化转型?

博文视点Broadview

5K字详解Java 注解及其底层原理

了不起的程序猿

Java 编程语言 后端 java程序员 java编程

如何在 Anolis 8上部署 Nydus 镜像加速方案?

OpenAnolis小助手

Linux 开源 内核 龙蜥操作系统 容器镜像加速

龙智集团赢得2022年Atlassian与AWS云销售竞赛

龙智—DevSecOps解决方案

云原生

使用 Spring Boot 构建 TiDB 应用程序

TiDB 社区干货传送门

什么是编译器中的常量传播?

华为云开发者联盟

开发 编译器 常量传播 基本块

前端监控系列1| 字节的前端监控SDK是怎样设计的

字节跳动终端技术

前端 监控 sdk

TiDB 论文引发的 HTAP 数据库再思考

TiDB 社区干货传送门

数据库架构选型

使用 TiDB Cloud (DevTier) 构建 TiDB 集群

TiDB 社区干货传送门

达摩克利斯之剑:开源软件的合规风险及防控策略

SEAL安全

开源安全 软件供应链安全 开源合规 软件供应链攻击

【等保小知识】过等保一定要买堡垒机吗?堡垒机有什么作用?

行云管家

网络安全 等保 堡垒机 等级保护 过等保

MongoDB中的Group By_语言 & 开发_Jonathan Allen_InfoQ精选文章