MongoDB之聚合操作

本文介绍了MongoDB的聚合操作,包括聚合简介、aggregation pipeline分析。聚合操作通过管道概念组合文档值并执行分组操作,类似SQL的count(*)与group by。文章详细解析了聚合操作的语法格式、字段解释、管道操作符以及read/write Concern和read/write Preference,讨论了如何避免脏读问题。
摘要由CSDN通过智能技术生成

MongoDB之聚合操作

一、聚合简介

  • MongoDB中的聚合操作将多个文档中的值组合在一起,并可对分组数据执行各种操作,以返回单个结果。 在SQL中的 count(*)与group by组合相当于mongodb 中的聚合功能。
  • MongoDB为我们提供了三种方法来实现聚合操作。分别是aggregation pipeline,Map-Reduce和Single Purpose Aggregation Operations。

个人理解:聚合操作中主要使用到了“管道”的概念。管道的入口是一个集合(及该集合内的所有文档),管道的出口是你所需要的数据。这个管道中间是有一个个功能节点组成的,可以类比实际生活中一节一节的管道,每个功能节点都会对上一个节点的结果进行一定的操作,如过滤掉某些文档、对文档进行排序等等。相当于把对某个集合的一系列操作使用一个指令完成,比一个指令一个指令操作的优势在于Mongo会在上一个操作结束之后将结果保留在内存中直接进行下一个操作,会更加节省资源速度会更快

二、aggregation pipeline分析

Mongo版本:4.0

2.1 聚合操作语法格式

db.collection.aggregate
	{
	  aggregate: "<collection>" || 1,
	  pipeline: [ <stage>, <...> ],
	  explain: <boolean>,
	  allowDiskUse: <boolean>,
	  cursor: <document>,
	  maxTimeMS: <int>,
	  bypassDocumentValidation: <boolean>,
	  readConcern: <document>,
	  collation: <document>,
	  hint: <string or document>,
	  comment: <string>,
	  writeConcern: <document>
	}

2.2 聚合指令的字段解释:

字段名 类型 解释 是否为必填字段
aggregate string 要聚合的目标集合名(使用1表明指令不可知) 必填
pipeline arr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值