本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
$lookup
Amazon DocumentDB 中的$lookup聚合阶段允许您在两个集合之间执行左外连接。此操作允许您根据匹配的字段值合并来自多个集合的数据。当您需要将来自相关集合的数据合并到查询结果中时,它特别有用。
参数
-
from:用于执行连接的集合的名称。 -
localField:输入文档中要与之匹配的字段foreignField。 -
foreignField:from集合中文档中要与之匹配的字段localField。 -
as:要添加到包含from集合中匹配文档的输出文档的新字段的名称。
示例(MongoDB 外壳)
以下示例演示了将集合中的数据联接到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命令的代码示例,请选择要使用的语言的选项卡: