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`(平均)等。 其優勢是無需手動導出數據,通過管道式組合高效完成分析,建議從簡單階段開始,逐步練習多階段嵌套,熟悉各階段作用即可掌握。

閱讀全文