MongoDB 聚合框架中有哪些常用的管道操作符?

推荐答案

在 MongoDB 聚合框架中,常用的管道操作符包括:

  1. $match:过滤文档,只传递符合条件的文档到下一个管道阶段。
  2. $group:按指定表达式对文档进行分组,并计算聚合结果。
  3. $sort:对输入文档进行排序。
  4. $project:选择文档中的特定字段,或重命名字段,或计算新字段。
  5. $limit:限制传递到下一个阶段的文档数量。
  6. $skip:跳过指定数量的文档,传递剩余的文档到下一个阶段。
  7. $unwind:将数组字段拆分为多个文档,每个文档包含数组中的一个元素。
  8. $lookup:执行左外连接,从另一个集合中获取相关文档。
  9. $addFields:向文档中添加新字段,类似于 $project,但不删除现有字段。
  10. $count:返回当前管道中的文档数量。

本题详细解读

$match

$match 用于过滤文档,类似于 SQL 中的 WHERE 子句。它接受一个查询条件,只有符合条件的文档才会进入下一个管道阶段。

$group

$group 用于按指定表达式对文档进行分组,并计算聚合结果。常见的聚合操作包括 $sum$avg$min$max 等。

$sort

$sort 用于对输入文档进行排序。可以指定一个或多个字段进行升序或降序排序。

$project

$project 用于选择文档中的特定字段,或重命名字段,或计算新字段。类似于 SQL 中的 SELECT 语句。

$limit

$limit 用于限制传递到下一个阶段的文档数量。

$skip

$skip 用于跳过指定数量的文档,传递剩余的文档到下一个阶段。

$unwind

$unwind 用于将数组字段拆分为多个文档,每个文档包含数组中的一个元素。

$lookup

$lookup 用于执行左外连接,从另一个集合中获取相关文档。

$addFields

$addFields 用于向文档中添加新字段,类似于 $project,但不删除现有字段。

$count

$count 用于返回当前管道中的文档数量。

纠错
反馈