Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j Cypher-节点遍历_Neo4j_Cypher - Fatal编程技术网

Neo4j Cypher-节点遍历

Neo4j Cypher-节点遍历,neo4j,cypher,Neo4j,Cypher,我有一个简单的图,其中节点标记为组织,有两种定向关系类型“控制”和“影响”。我的目标是- 第一步 给定一个节点,查找与之连接的所有具有“控制”关系的节点(在任何方向) 步骤2 对于步骤1找到的所有节点,查找任何出站“影响”关系(任意长度),并包括这些节点 到目前为止,我能想到的是: MATCH (x:Organization {ORGID: "5621"})-[:Control*1..]-(y) WITH y MATCH y-[:Influence*0..]-(z) RETURN y,z; 问

我有一个简单的图,其中节点标记为组织,有两种定向关系类型“控制”和“影响”。我的目标是-

第一步 给定一个节点,查找与之连接的所有具有“控制”关系的节点(在任何方向)

步骤2 对于步骤1找到的所有节点,查找任何出站“影响”关系(任意长度),并包括这些节点

到目前为止,我能想到的是:

MATCH (x:Organization {ORGID: "5621"})-[:Control*1..]-(y) WITH y MATCH y-[:Influence*0..]-(z) RETURN y,z;
问题
1) 此查询不包括起始节点,如何在结果中获得该节点

2) 理想情况下,我也希望得到结果中的关系,它只返回节点


TIA

这里有一种方法可以满足您的需求:

MATCH (x:Organization { ORGID: "5621" }), p1 = x-[:Influence*0..]->(z)
WHERE NOT z-[:Influence]->()
WITH x, COLLECT(p1) AS c1
OPTIONAL MATCH x-[:Control*]-(y), p2=y-[:Influence*0..]->(z)
WHERE NOT z-[:Influence]->()
RETURN c1 + COLLECT(p2) AS result;

查询返回匹配的
影响
路径的集合。
WHERE
子句用于确保每个路径尽可能长(以避免在结果中显示大量重复的子路径)。每个路径都是由关系分隔的节点的集合,如果路径没有关系,则可以仅由一个节点组成。

非常感谢,给了我想出其他解决方案的想法。。。我非常喜欢MATCH(StartNode:Organization{ORGID:“5621”}),ControlPath=StartNode-[:Control | EC*1..](ControlNode),SIStartNodePath=StartNodePath-[:Influence*0..]->(),SiotherNodePath=ControlNode-[:Influence*0..]->(),返回ControlPath,SIStartNodePath,SiotherNodePath;