以下是 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