MongoDB数据库入门(四) MongoDB的高级查询 、MongoDB多表关联查询、aggregate聚合管道

一、关系型数据库表(集合)与表(集合)之 间的几种关系

1、一对一的关系

例如:一个人对应一个唯一的身份证号,即为一对一的关系。
在这里插入图片描述

2、一对多的关系

例如:一个班级对应多名学生,一个学生只能属于一个班级,即为一对多关系
在这里插入图片描述
在这里插入图片描述

3、多对多的关系

例如:一个学生可以选多门课程,而同一门课程可以被多个学生选修,彼此的对应关系 即是多对多关系
在这里插入图片描述

二、MongoDB 聚合管道(Aggregation Pipeline)

使用聚合管道可以对集合中的文档进行变换和组合。

实际项目:表关联查询、数据的统计

MongoDB 中使用 db.COLLECTION_NAME.aggregate([{<stage>},…]) 方法 来构建和使用聚合管道。先看下官网给的实例,感受一下聚合管道的用法。
在这里插入图片描述

三、MongoDB Aggregation 管道操作符与表达式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、 $project

修改文档的结构,可以用来重命名、增加或删除文档中的字段。
要求查找 order 只返回文档中 trade_no 和 all_price 字段

db.order.aggregate([ 
	{
    
		$project:{
    trade_no:1, all_price:1 } 
	} 
])

在这里插入图片描述

五、 $match

作用
用于过滤文档。用法类似于 find() 方法中的参数。

db.order.aggregate([ 
	{
    
		$project:{
    trade_no:1, all_price:1 } 
	}, 
	{
    
		$match:{
   all_price:{
   $gte:90}} 
	} 
])

在这里插入图片描述

六、 $group

将集合中的文档进行分组,可用于统计结果。
统计每个订单的订单数量,按照订单号分组

db.order_item.aggregate([ 
	{
    
		$group: {
   _id: "$order_id"
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值