N1ql按用户字段加入

时间:2016-03-29 19:23:58

标签: couchbase n1ql

是否可以根据文档中的两个字段在n1ql中连接两个文档?

在联接的语言查询示例中,例如:

SELECT c, pr
FROM purchases pu
JOIN customer c ON KEYS pu.customerId
NEST product pr
ON KEYS ARRAY li.product FOR li IN pu.lineItems END
WHERE pu.customerId = "customer1"

奇怪的是,我无法说明c的哪些属性正用于加入,或者如何指定它。

假设我的文档中_type='Customer'拥有myId属性,并且我希望将这些文档与_type='PurchaseOrder'的文档相结合,并具有customerId属性。怎么做?

1 个答案:

答案 0 :(得分:1)

N1QL使用一个文档中的表达式执行JOIN,该表达式引用第二个文档的外部主键。在您的示例中,客户的JOIN正在使用客户c的外部主键。请注意,Couchbase将文档数据库与键值数据库组合在一起。因此,Couchbase中的每个文档都有一个唯一的外部密钥。该外键是N1QL用于加入第二个文档的内容。