在 MongoDB 中,沒有傳統關系型數據庫中的聯表查詢(join)功能。但是可以使用聚合管道(aggregation pipeline)來實現類似的功能。
聚合管道是 MongoDB 的一種強大的數據處理工具,它允許您在數據庫中執行多個操作,例如過濾、排序、聚合和轉換數據。
以下是一個使用聚合管道進行聯表查詢的示例:
假設有兩個集合:users 和 orders,users 集合包含用戶信息,orders 集合包含訂單信息,并且每個訂單都有一個用戶ID字段用于與用戶集合關聯。
// 聚合管道查詢 db.users.aggregate([ // 第一步:匹配用戶 { $match: { name: "John" } }, // 第二步:連接 orders 集合 { $lookup: { from: "orders", localField: "_id", foreignField: "userId", as: "orders" } }, // 第三步:篩選所需字段 { $project: { name: 1, email: 1, orders: 1 } } ]);
上述查詢首先從 users 集合中匹配名為 "John" 的用戶。然后使用 $lookup 階段將 orders 集合連接到當前查詢結果中,通過用戶ID字段與 orders 集合的 userId 字段進行關聯。最后通過 $project 階段篩選出所需的字段。
這樣可以獲得名字為 "John" 的用戶以及他的訂單信息。
需要注意的是,聚合管道的語法比較復雜,可以根據實際情況進行調整和擴展。以上只是一個簡單示例,更復雜的聯表查詢可能需要使用更多的聚合階段來實現。