初めてSOとCypherとNeo4jのnewbyを求めています。経路内のノード間のすべてのノードと関係を返す
特定のノードの系統を構成するすべてのノードとすべての関係を取得する必要があります。有向グラフで表示するには、nodes
のリストとリレーションシップのリスト(links
)が必要です。 result
これは私が研究の時間と試み後に思い付いたものです:: これは私のダミーset of nodesであり、これは私が(ノードプラスリンク)を取得したいものです
MATCH lineage = (n:Sample {name:"P"})-[:CHILD_OF*]->(parent:Sample)
MATCH (parent)-[r_out]->(child)-[r_in]->(parent)
WHERE parent IN nodes(lineage) OR child IN nodes(lineage)
RETURN
collect(DISTINCT parent) AS nodes,
collect({ source: parent.name, rel: type(r_out), target: child.name }) AS links_out,
collect({ source: child.name, rel: type(r_in), target: parent.name }) AS links_in;
(私は2つを作成しました私は、n
と他のすべてのノードの間の可能なすべてのパスを返すと思うので、これはノードのリストでnを返さず、リンクを実際に乗算します。 。
...
任意の助けを私は解決策を見つけ出すことができませんでしたし、私もそれがはるかにエレガントクエリする必要があります確信していますか? おかげ
私は理解していないのですが、私は親を持たないノードをターゲットにしているので(なぜなら、出てくる 'CHILD_OF'関係はありません)、私はそのノードを唯一の要素として' nodes '配列? 'lineage'パスに含まれていなくても(この場合のパスは実際には存在しないので)、' name = P'という名前のプロパティを持つ 'child'ノードは定義されていませんか? – Stefano