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