2020MongoDB进阶-聚合查询

2020MongoDB进阶-聚合查询

基础

2020MongoDB基本命令-C操作(增)
2020MongoDB基本命令-R操作(查)
2020MongoDB基本命令-U操作(改)
2020MongoDB基本命令-C操作(删)

进阶

2020MongoDB进阶-排序、分页
2020MongoDB进阶-聚合查询

持续更新…

语法

db.集合名.aggregate([
{管道:{表达式}}
])

常用管道

管道名功能
$group将集合中的文档分组。用于统计结果
$match过滤数据只输出符合条件的文档
$sort聚合数据进一步排序
$skip跳过指定文档数
$limit限制集合返回的文档数量

常用表达式

表达式名作用
$sum总数量
$avg平均
$min最小值
$max最大值

准备工作:插入数据

db.c1.insert({_id:1,name:"a",sex:1,age:1})
db.c1.insert({_id:2,name:"a",sex:1,age:2})
db.c1.insert({_id:3,name:"b",sex:2,age:3})
db.c1.insert({_id:4,name:"c",sex:2,age:4})
db.c1.insert({_id:5,name:"d",sex:2,age:5})

示例1:统计男生、女生的总年龄

db.c1.aggregate([
{
	$group:
	{
	_id:"$sex",
	result:{$sum:"$age"}
	}
}
])

结果
result

示例2:求男生女生的总人数

db.c1.aggregate([
{
	$group:
	{
	_id:"$sex",
	result:{$sum:1}
	}
}
])

结果
在这里插入图片描述

示例3:求学生总数和平均年龄

db.c1.aggregate([
{
	$group:
	{
	_id:null,
	total_num:{$sum:1},
	total_avg:{$avg:"$age"}
	}
}
])

结果
result

示例4:查询男生人数,女生人数,按人数升序

db.c1.aggregate([
	{
		$group:
		{
		_id:"$sex",
		total_num:{$sum:1},
		}
		
	},
	{
		$sort:{total_num:1}
	}
])

结果
result

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GGIOPPL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值