MongoDB聚合框架中的多表关联查询($lookup)

一.  聚合框架 

聚合框架是MongoDB的高级查询语言,它允许我们通过转换和合并多个文档中的数据来生成新的单个文档中不存在的信息。

聚合管道操作主要包含下面几个部分:

命令   功能描述  
$project   指定输出文档里的字段.  
$match   选择要处理的文档,与fine()类似。  
$limit   限制传递给下一步的文档数量。  
$skip   跳过一定数量的文档。  
$unwind   扩展数组,为每个数组入口生成一个输出文档。  
$group   根据key来分组文档。  
$sort   排序文档。  
$geoNear   选择某个地理位置附近的的文档。  
$out   把管道的结果写入某个集合。  
$redact   控制特定数据的访问。  

$lookup

  多表关联(3.2版本新增)  

在本篇幅中,我们聚焦$lookup的使用。

二.  $lookup的功能及语法

1. 主要功能 是将每个输入待处理的文档,经过$lookup 阶段的处理,输出的新文档中会包含一个新生成的数组列(户名可根据需要命名新key的名字 )。数组列存放的数据 是 来自 被Join 集合的适配文档,如果没有,集合为空(即 为[ ])

2. 基本语法

{ $lookup: { from: <collection to join>, localField: <field from the input documents>, foreignField: <field from the documents of the "from" collection>, as: <output array field> } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzgfd.html