6.6 PGQLによる可変長のパス
可変長パス・パターンは、頂点およびエッジの変数と一致するように*のような数量詞を持ちます。PATHマクロを使用すると、名前を参照することにより、MATCH句に任意の回数だけ埋め込むことのできる問合せの開始時に、名前付きパス・パターンを指定できます。次の例は、MarioとLuigiの共通の祖先をすべて検索します。
PATH has_parent AS () -[:has_father|has_mother]-> ()
SELECT ancestor.name
FROM MATCH (p1:Person) -/:has_parent*/-> (ancestor:Person)
, MATCH (p2:Person) -/:has_parent*/-> (ancestor)
WHERE
p1.name = 'Mario' AND
p2.name = 'Luigi'
追加の制約または問合せ結果では使用されない、中間エッジまたはノードの名前は定義する必要がないため、前のパス仕様では、匿名制約の使用も示しています。匿名要素は、[:has_father|has_mother]
などの制約を持つことができます。エッジは変数名を取得できません(他の場所で参照されないため)が、制約はされます。
可変長のパス・パターン一致のその他の例については、こちらのPGQL仕様の関連するセクションを参照してください。
親トピック: プロパティ・グラフ問合せ言語(PGQL)