Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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
Graph Neo4j Cypher查询以获取所有子节点,直到到达具有特定关系的节点_Graph_Neo4j_Cypher - Fatal编程技术网

Graph Neo4j Cypher查询以获取所有子节点,直到到达具有特定关系的节点

Graph Neo4j Cypher查询以获取所有子节点,直到到达具有特定关系的节点,graph,neo4j,cypher,Graph,Neo4j,Cypher,我正在尝试创建一个查询,其中以称为“分析单位”的蓝色节点开始。查询将获取所有子节点,除非它运行到一个节点,该节点通过直接连接到不同的分析单元来“覆盖”关系。任何帮助都将不胜感激 这个查询对您有用吗 它应该返回每个蓝色节点(具有指向任何红色节点的路径)及其“子节点”(沿着这些路径中的每一个),忽略其中任何子节点(第一个除外)具有分析组成的传入关系的路径: MATCH (a:Blue)-[:ANALYTICALLY_COMPOSED]->(b) MATCH p=(b)-[rels*]-(:Re


我正在尝试创建一个查询,其中以称为“分析单位”的蓝色节点开始。查询将获取所有子节点,除非它运行到一个节点,该节点通过直接连接到不同的分析单元来“覆盖”关系。任何帮助都将不胜感激

这个查询对您有用吗

它应该返回每个
蓝色
节点(具有指向任何
红色
节点的路径)及其“子节点”(沿着这些路径中的每一个),忽略其中任何子节点(第一个除外)具有分析组成的传入
关系的路径:

MATCH (a:Blue)-[:ANALYTICALLY_COMPOSED]->(b)
MATCH p=(b)-[rels*]-(:Red)
WITH a, NODES(p) AS subnodes
WHERE NONE(n IN subnodes[1..] WHERE ()-[:ANALYTICALLY_COMPOSED]->(n)) 
RETURN a, subnodes;

你能详细介绍一下吗?如中所示,给定您链接到的图形,引导我们完成您希望正确查询执行的操作以及预期的输出。旁白:您似乎有方向相反但始终存在于相同节点之间的关系类型。这种冗余在neo4j中是不必要的,因为您可以轻松地在任意方向导航关系。@InverseFalcon-Sure,所以假设我使用“美国银行”的起始节点进行查询。。。其中一个蓝色节点。。。我想把所有连接到它的东西都用红色框起来。其思想是,它下面的所有内容都将“继承”关系的“分析部分”,除非它运行到一个明确定义与其他地方的关系的节点。我不确定给每个节点提供这种显式关系的最佳做法。@cybersam感谢这一技巧,我将删除冗余。您只关心红色节点作为“子节点”吗?绿色节点“Barnett Bank”和“Bank South”似乎可以作为蓝色节点的“子节点”,这取决于您从哪个蓝色节点开始遍历。是的,这就成功了!!非常感谢。。。只需过滤到红色的“a.name=”美国银行“出现的位置,因为它来自另一条路径。