MongoDB之聚合查询
MongoDB之聚合查询
MongoDB普通查询播客:https://blog.****.net/sinat_32366329/article/details/81784562
聚合框架是MongoDB的高级查询语言,允许我们通过转化合并由多个文档的数据来生成新的在单个文档里不存在的文档信息。通俗一点来说,可以把MongoDB的聚合查询等价于SQL的GROUP BY语句。
聚合操作过程可以理解为下面的图,每个聚合操作完后,将输出数据作为下一个聚合操作的输入数据。
聚合操作汇总
SQL对比聚合操作
$match查询条件聚合操作
普通的查询操作,对于查询用户名为jack的用户,使用find操作
聚合的查询操作,使用aggregate操作。Aggregate单词的意思是聚合,可以增加多个操作,这里使用简单的条件,$match。注意aggregate内部使用数组,因为聚合操作可以聚合多个。
$project,指定要输出的文档属性
普通操作对于查询后需要输出指定的对象操作如下:
$project聚合操作,指定要输出的文档属性
$group用于聚合管道
$match/$sort/$skip/$limit
这4个操作符和普通查询函数意思相同,但是用法不同而已,普通查询通过点缀的方式连接函数。
聚合操作则通过管道方式执行
$unwind,将数组里面的每一个值,解析为一个文档
普通查询,以及输出结果。结果like是一个数组
$unwind解析为单个文档对象后,结果like是一个一个文档,要对应上属性。
$out,将结果保存到另外一个集合中。这个对于集合迁移非常有用。
目前数据库中只有以下3个集合。
通过查询结果不使用$out输出到其它集合中
执行以下结果,将输出的结果通过$out输出到like集合中。这时候like不存在会自己创建
查看数据库中全部集合,多了一个like的集合
查询like集合的结果
结果重塑文档
重塑文档,就是在文档查询结果返回的时候,利用mongodb提供的函数对文档处理,而不用读取到数据后人工代码去干预。
字符串函数
简单使用几个函数,其它函数都是大同小异的用法