MongoDB聚合管道进阶:用$lookup实现多集合关联

MongoDB聚合管道中的`$lookup`用于多集合关联查询,类似关系型数据库的JOIN。它需指定目标集合(`from`)、当前集合匹配字段(`localField`)、目标集合匹配字段(`foreignField`)及结果存放字段(`as`),匹配结果以数组形式存入`as`字段。 例如,用户集合(`users`)与订单集合(`orders`)关联,通过`localField: "_id"`和`foreignField: "userId"`匹配,可获取每个用户的订单列表。 进阶用法可结合`$match`(先过滤)、`$unwind`(展开数组)等阶段,如统计年龄>25用户的订单数量。使用时需注意字段类型一致、目标集合`foreignField`建索引(避免全表扫描),未匹配数据返回空数组。 `$lookup`是多集合关联的核心工具,掌握其参数和基础用法,结合其他聚合阶段可高效处理复杂关联场景。

阅读全文
MongoDB聚合管道:初学者也能看懂的数据分析方法

MongoDB聚合管道是数据处理的“流水线”,通过多阶段加工实现复杂数据分析。核心是由多个“阶段”组成,每个阶段处理前一阶段输出,依次完成筛选、投影、分组统计等操作。 关键阶段包括:`$match`(筛选,类似SQL WHERE)、`$project`(投影,类似SELECT)、`$group`(分组统计,如平均分、总数,类似GROUP BY)、`$sort`(排序)、`$limit`(限制数量)。 实战中,通过多阶段组合可实现复杂分析:如筛选1班数学成绩并投影姓名和分数(`$match+$project`),按科目分组计算平均分(`$group+$sort`),或统计班级+科目平均分及人数(复合分组)。常用操作符还包括`$sum`(求和)、`$avg`(平均)等。 其优势是无需手动导出数据,通过管道式组合高效完成分析,建议从简单阶段开始,逐步练习多阶段嵌套,熟悉各阶段作用即可掌握。

阅读全文