MongoDB 聚合框架(Aggregation Framework)是 MongoDB 提供的一个强大工具,用于对文档进行多阶段数据处理和转换。聚合框架支持类似于 SQL 的聚合操作,例如过滤、排序、分组、投影和计算等。

以下是 MongoDB 聚合框架的一些基本概念和用法:

1. $match 阶段:
   - $match 阶段用于筛选文档,类似于 find 查询。
   db.collection.aggregate([
     { $match: { field: value } }
   ]);

2. $project 阶段:
   - $project 阶段用于投影文档,即选择要包含的字段,类似于 find 中的投影操作。
   db.collection.aggregate([
     { $project: { field1: 1, field2: 1, _id: 0 } }
   ]);

3. $group 阶段:
   - $group 阶段用于分组文档,并对每个组应用聚合操作,如计数、求和等。
   db.collection.aggregate([
     { $group: { _id: "$field", count: { $sum: 1 } } }
   ]);

4. $sort 阶段:
   - $sort 阶段用于对文档进行排序。
   db.collection.aggregate([
     { $sort: { field: 1 } }
   ]);

5. $limit 和 $skip 阶段:
   - $limit 阶段用于限制返回文档的数量,而 $skip 阶段用于跳过指定数量的文档。
   db.collection.aggregate([
     { $skip: 10 },
     { $limit: 5 }
   ]);

6. $unwind 阶段:
   - $unwind 阶段用于将包含数组的文档拆分为多个文档,每个数组元素对应一个文档。
   db.collection.aggregate([
     { $unwind: "$arrayField" }
   ]);

7. 管道操作:
   - 聚合框架支持将多个阶段连接在一起,形成一个管道,依次处理文档。
   db.collection.aggregate([
     { $match: { field: value } },
     { $group: { _id: "$field", count: { $sum: 1 } } },
     { $sort: { count: -1 } }
   ]);

聚合框架是 MongoDB 中非常强大和灵活的工具,通过组合不同的阶段,可以实现丰富的数据处理和分析功能。


转载请注明出处:http://www.zyzy.cn/article/detail/9246/MongoDB