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,我有一个Neo图,如果我选择某些关系,它就是一棵树 我希望从任意节点开始,查找到根的所有节点。我希望将两个节点之间的所有节点(包括端点)返回给我。在本例中,我需要按顺序排列节点,a,t,c,d,e,ROOT 想象一下,这棵树有一根看起来像 a-[]->t-[]->c-[]->d-[]->e-[]->ROOT 如果我关心的关系是x、y和z,如果根节点被称为root,并且起始节点具有特定的id唯一值,我会得到如下结果: (a {id:an_id})-[*:x|y|z]

我有一个Neo图,如果我选择某些关系,它就是一棵树

我希望从任意节点开始,查找到根的所有节点。我希望将两个节点之间的所有节点(包括端点)返回给我。在本例中,我需要按顺序排列节点,a,t,c,d,e,ROOT

想象一下,这棵树有一根看起来像

a-[]->t-[]->c-[]->d-[]->e-[]->ROOT
如果我关心的关系是x、y和z,如果根节点被称为root,并且起始节点具有特定的id唯一值,我会得到如下结果:

(a {id:an_id})-[*:x|y|z]->(root:ROOT) return a, root
这将返回端点,但如何获得它们之间的节点

编辑


节点

你几乎说对了:

您必须将表达式指定给路径,例如。p

使用最短路径可能更有效

MATCH p= shortestPath((a:Leaf {id:an_id})-[:x|:y|:z*]->(root:ROOT))
RETURN p,a,root, nodes(p);

顺便说一句,这是带有y的密码:谢谢,我会搬到甲板上,启动工作机器,阅读“路径”文档。在第二个示例周围有括号,但在第一个示例周围没有括号。这有关系吗?在第一个例子中,“path”来自哪里?括号属于shorespath函数。
MATCH p= shortestPath((a:Leaf {id:an_id})-[:x|:y|:z*]->(root:ROOT))
RETURN p,a,root, nodes(p);