2016-03-29 9 views
1

ドキュメント内の2つのフィールドに基づいてn1qlで2つのドキュメントを結合することは可能ですか?このような合流の言語クエリの例では、N1SQLユーザフィールドで結合する

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属性を持つ文書を持っていた、と私はcustomerId属性を持つ、_type='PurchaseOrder'の文書にそれらに参加することを望んでいたとします。それはどうやって行なわれるのですか?

答えて

1

N1QLは、2番目のドキュメントの外部主キーを参照する1つのドキュメントの式を使用してJOINを実行します。あなたの例では、顧客のJOINは顧客cの外部主キーを使用しています。 Couchbaseは、文書データベースとKey-Valueデータベースを組み合わせています。したがって、Couchbaseのすべてのドキュメントには一意の外部キーがあります。その外部キーは、N1QLが2番目のドキュメントにJOINするために使用するものです。

+0

これ以外の方法で参加することもできますか? – FrobberOfBits

+0

はい、次のリリースでは使用できません。 – geraldss

関連する問題