MongoDB聚合管道進階:用$lookup實現多集合關聯

MongoDB聚合管道中的`$lookup`用於多集合關聯查詢,類似關係型數據庫的JOIN。它需指定目標集合(`from`)、當前集合匹配字段(`localField`)、目標集合匹配字段(`foreignField`)及結果存放字段(`as`),匹配結果以數組形式存入`as`字段。 例如,用戶集合(`users`)與訂單集合(`orders`)關聯,通過`localField: "_id"`和`foreignField: "userId"`匹配,可獲取每個用戶的訂單列表。 進階用法可結合`$match`(先過濾)、`$unwind`(展開數組)等階段,如統計年齡>25用戶的訂單數量。使用時需注意字段類型一致、目標集合`foreignField`建索引(避免全表掃描),未匹配數據返回空數組。 `$lookup`是多集合關聯的核心工具,掌握其參數和基礎用法,結合其他聚合階段可高效處理複雜關聯場景。

閱讀全文