リレーションの終了ノードを取得するにはどうすればよいですか。例えば:
rels = graph_db.match(start_node=user, rel_type="is_post_owner")
では、開始ノード ユーザーのすべての終了ノードを取得するにはどうすればよいでしょうか。
よろしく、サミュエル
このような:
rels = graph_db.match(start_node=user, rel_type="is_post_owner")
end_nodes = [rel.end_node for rel in rels]
メソッドから返される各関係はmatch
標準のRelationshipオブジェクトであり、そのまま使用できます。
あなたはサイファーを使うことができます
START a=node(id) //replace with the id of the node you want to start
MATCH p=a-[:is_post_owner*..]->x //get all the paths to all nodes with rel:is_post_owner
WHERE NOT(x-->()) //exclude nodes with Direction Out Relationships "end nodes"
RETURN x //get the end nodes
そうすれば、返されるノードはグラフのリーフ ノードになり、他の方向との関係はありません。
トーマスが述べたように、彼は完全に正しいので、where 句に関係タイプを含める必要があります。そうすることで、その関係の終了ノードのみを取得し、返されたノードは方向アウト (葉ノードではない) で他の関係を持つことができますが、それらは要求された関係の終了ノードです
START a=node(id)
MATCH p=a-[r:is_post_owner*..]->x
WHERE NOT(x-->(r))
RETURN x