次のようなクエリを使用しています。
(n)-[*]->(m)
Any depth.
しかし、次のようなクエリでリレーション名をフィルタリングすることはできません。
(n)-[*:DOES]->(m)
Any depth.
関連パスに異なるリレーションがあるため、リレーション名をフィルタリングする必要があります。それが役立つ場合、ここに私のグラフがあります:
CREATE (Computer { name:'Computer' }),(Programming { name:'Programming' }),(Java { name:'Java' }),(GUI { name:'GUI' }),(Button { name:'Button' }), Computer<-[:IS]-Programming, Programming<-[:IS]-Java, Java<-[:IS]-GUI, GUI<-[:IS]-Button, (Ekin { name:'Ekin' }), (Gunes { name:'Gunes' }), (Ilker {name:'Ilker'}), Ekin-[:DOES]->Programming, Ilker-[:DOES]->Java, Ilker-[:DOES]->Button, Gunes-[:DOES]->Java
「プログラミング」と「DOES」の関係が深い名前(Ekin、Ilker、Gunes)を取得したいと考えています。
編集:
2 つの異なるクエリの結果をマージすることで、必要な値を取得できます (到達したい最上位ノードは 13 だと思います)。
START n=node(13)
MATCH p-[:DOES]->()-[*]->(n)
RETURN DISTINCT p
START n=node(13)
MATCH p-[:DOES]->(n)
RETURN DISTINCT p
単一のクエリで実行したい。