MongoDB聚合与索引

目录

聚合

group分组 

 project显示

 Match搜索

 sort排序

 limit和skip

 索引

explain性能分析

 索引操作


聚合

 

 聚合就相当于linux中的管道

 

group分组 

以gender字段进行分组 统计每组字段个数  $sum:1代表每条数据记为几 

取字段必须加上$ 和引号

 

 分组时_id为空,就将整个文档数据分为为一个组

 project显示

b.name.aggregate({
$group:{
	_id:"$gender"
	,avg:{$avg:'$age'},
 	count:{
		$sum:1}
		}
	},
{$project:{
	_id:0,
	 gender:'$_id',
	avg:1,
	count:1
		}
}
)

 先进行分组,然后设置_id不显示,gender字段显示上面_id的内容 avg和count字段显示

 Match搜索

 

Match的功能和find是一样的 只不过match能在管道中使用 

 sort排序

 分组男女生,统计人数,降序排序

 limit和skip

 

先用skip后用limit 效率更高

聚合中先用limit后用skip,是取不到数据的

正常的find()方法可以取到 limit先后结果没有区别

 索引

 db.name.ensureIndex({name:1}) 1为升序 -1为降序 ,正常升序降序没有什么影响 只有在sort的时候排序会影响速度 若索引为升序 sort升序排序会快一些

 循环添加数据

explain性能分析

 未设置索引时所需的时间

设置索引后所需的时间

 

 explain(‘executionStats’) 查看性能分析

 索引操作

 

创建索引时 加上 unique字段可以设定索引值唯一

db.name.ensureIndex({name:1},{unique:true})

这样设置之后插入的name值不能重复 若集合中对应的字段已经有重复值 会设置失败

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值