本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
$lookup
Amazon DocumentDB $lookup 中的彙總階段可讓您在兩個集合之間執行左側外部聯結。此操作可讓您根據相符的欄位值,合併來自多個集合的資料。當您需要將相關集合的資料納入查詢結果時,此功能特別有用。
參數
-
from:要執行聯結的集合名稱。 -
localField:輸入文件中要與 相符的欄位foreignField。 -
foreignField:集合中from要比對之文件的欄位localField。 -
as:要新增至輸出文件的新欄位名稱,其中包含來自from集合的相符文件。
範例 (MongoDB Shell)
下列範例示範將資料從orders集合加入customers集合的簡單$lookup操作。
建立範例文件
db.customers.insertMany([ { _id: 1, name: "Alice" }, { _id: 2, name: "Bob" }, { _id: 3, name: "Charlie" } ]); db.orders.insertMany([ { _id: 1, customer_id: 1, total: 50 }, { _id: 2, customer_id: 1, total: 100 }, { _id: 3, customer_id: 2, total: 75 } ]);
查詢範例
db.customers.aggregate([ { $lookup: { from: "orders", localField: "_id", foreignField: "customer_id", as: "orders" } } ]);
輸出
[
{
_id: 1,
name: 'Alice',
orders: [
{ _id: 2, customer_id: 1, total: 100 },
{ _id: 1, customer_id: 1, total: 50 }
]
},
{ _id: 3, name: 'Charlie', orders: [] },
{
_id: 2,
name: 'Bob',
orders: [ { _id: 3, customer_id: 2, total: 75 } ]
}
]
程式碼範例
若要檢視使用 $lookup命令的程式碼範例,請選擇您要使用的語言標籤: