在MongoDB中使用聚合框架(Aggregation Framework)主要有以下几点:
1、 聚合框架可以在MongoDB中实现聚合计算,处理和分析数据等功能。
2、 使用db.collection.aggregate()执行聚合管道操作。聚合管道由多个阶段组成,每个阶段完成一个功能。
3、 常用的聚合管道操作符有:
- $match:过滤数据
- $group:分组聚合
- $sort:排序
- $limit:限制结果数量
- $skip:跳过结果
- $unwind:拆分数组字段
- $project:重新构造每条记录的结构
- $lookup:左外连接
- $out:输出至集合
- $geoNear:地理位置查询
4、 示例:查询用户年龄大于30,按年龄分组,跳过5条,限制3条,输出至集合:
db.users.aggregate([
{ $match: { age: { $gt: 30 } } },
{ $group: { _id: "$age" } },
{ $skip: 5 },
{ $limit: 3 },
{ $out: "results" }
])
5、 聚合框架可以利用索引提高查询性能。使用explain()分析聚合管道,查看使用的索引情况。
6、 聚合框架不会修改源数据集合。输出操作$out除外,它会在输出集合中插入文档。
7、 聚合框架可以实现MapReduce的大部分功能,但性能可能略差于MapReduce。
8、 聚合框架可以最大限度发挥MongoDB的查询与计算能力。熟练掌握各种聚合操作可以实现复杂的数据分析功能。