ノードのすべての着信および発信の関係を見つけたいです。他の質問で提案されたいくつかのクエリを試しましたが、あまり運がありませんでした。これらは私が試した2つです
MATCH (a:User {username: "user6"})-[r*]-(b)
RETURN a, r, b
ノードは500個しかなく、永久に実行されます。私は1時間後にあきらめました。
私はこれを試しました
MATCH (c:User {username : 'user6'})-[r:*0..1]-(d)
WITH c, collect(r) as rs
RETURN c, rs
しかし、私はこのエラーを受け取ります
WARNING: Invalid input '*': expected whitespace or a rel type name (line 1, column 35 (offset: 34))
"MATCH (c {username : 'user6'})-[r:*0..1]-(d)"
ノードのすべての関係を取得する正しい方法は何ですか?
バージョン3.0.3を使用しています
単一ノードのすべての関係を取得する最も簡単な方法は次のとおりです。
MATCH (:User {username: 'user6'})-[r]-()
RETURN r
上記のソリューションでは、3.1のグラフ表現が返されなくなりました。代わりに以下のソリューションが動作するはずです
MATCH (a:User {username: 'user6'})-[r]-(b)
RETURN r, a, b
これは another SO question で回答されました
これらの答えのほとんどは問題なく動作しますが、私のように、リレーションシップ自体の名前も必要な場合は、r
をtype()
でラップする必要があります。
MATCH (a:User {username: 'user6'})-[r]-(b)
RETURN type(r), a, b
:すべてのノードを取得します。-START n = node()RETURN n;またはmatch(n)return n 2:ノードと関係を表示します。-MATCH(n)MATCH(n)-[r]-()RETURN n、rまたはSTART n = node()MATCH(n)-[r ]->(m)RETURN n、r、m 3:ノードと関係の一致:-MATCH(a:Policy)-[:APPLIES_TO]-(Cluster)WHERE a.name = "pol-1nils" RETURN a、Cluster 4 :特定のノードのすべてのオブジェクトを取得します。-MATCH(list:Policy)リスト5を返します。2つのノード間のエンティティにバインドされています。-match(a:WorkLoad)-[b:APPLIES_TO]->(c:Policy)c。 name = "shamshad"はa、b、cを返します。