Skip to main content

📘 聚合管道的结构

通常,我们使用 SQL 这种第四代语言来与关系型数据库进行交互。而在 MongoDB 中,我们通过增量步骤来获取和转换数据。

一个聚合管道是由 阶段 组成的。

我们将一个包含多个阶段的数组传递给 aggregate 方法,如下所示:

db.mycollection.aggregate([
stage1,
stage2,
stage3
])

示例

一个执行上述 SQL 语句的聚合管道示例如下:

db.mycollection.aggregate([
{
$sort:
/**
* 提供任意数量的字段/排序对。
*/
{
num_mflix_comments: -1,
},
},
{
$limit:
/**
* 提供要限制的文档数量。
*/
1,
},
{
$unwind:
/**
* path: 数组字段的路径。
* includeArrayIndex: 索引名称(可选)。
* preserveNullAndEmptyArrays: 展开 null 和空值(可选)。
*/
{
path: "$cast",
},
},
{
$project:
/**
* 规范:要包含或排除的字段。
*/
{
cast: 1,
},
},
])