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 如何查询包含某个节点的所有链?_Neo4j_Cypher - Fatal编程技术网

Neo4j 如何查询包含某个节点的所有链?

Neo4j 如何查询包含某个节点的所有链?,neo4j,cypher,Neo4j,Cypher,我有这种类型的图表: (a)->[r1]->(b)-[r1]->(c)->[r1]->(d)。此外,每个节点还可能具有附加的一个或多个关系r2,例如: (b)->[r2]->(G) (b)->[r2]->(K)等等,或者: (c)->[r2]->(G) (c)->[r2]->(K) 如果我像这样使用查询: MATCH (n1)-[r]->(n2)-[r1]->(n3)-[r2]->(n4)-[r3]->(n5)-[r4]->(n6) WH

我有这种类型的图表:

(a)->[r1]->(b)-[r1]->(c)->[r1]->(d)
。此外,每个节点还可能具有附加的一个或多个关系
r2
,例如:

(b)->[r2]->(G)
(b)->[r2]->(K)
等等,或者:

(c)->[r2]->(G)
(c)->[r2]->(K)

如果我像这样使用查询:

MATCH (n1)-[r]->(n2)-[r1]->(n3)-[r2]->(n4)-[r3]->(n5)-[r4]->(n6)
WHERE n1.property = "`DEF9747D6`"
RETURN r,r1,r2,r3,r4,n1,n2,n3,n4,n5,n6 LIMIT 10
它只返回指定的节点和从n1到n6的关系,但问题是我之前不知道链包含多少节点

<>所以我需要一个查询,它可以返回所有链和关系,即使我在中间指定了一个属性节点。例如:

(b)->[r2]->(G)
我指定了一些(
c.Property
),查询必须返回所有链表单(a)和结束以及所有关系
r1
r2


您能帮我查询一下吗?

下面的查询应该可以:

MATCH p = (n1)-[:n1|:n2*]->()
WHERE n1.property = "`DEF9747D6`"
RETURN relationships(p), nodes(p)
LIMIT 10
此查询使用a来
匹配从具有n1.property=“
DEF9747D6
”的节点开始的所有模式,这些模式跨越类型为
:n1
:n2
的关系。函数和用于从每个路径返回所有关系和节点


提示:处理关系类型时,请记住在类型名称之前添加
。那就是:用
:n1
代替
n1

太好了,亲爱的布鲁诺·佩雷斯!这个搜索对我来说很有效。非常感谢你!嗨,安德鲁,不客气!如果这个答案已经解决了你的问题,请通过点击复选标记来考虑。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。对我有用的小修改:匹配p=()-[]->(n1)-[]->(),其中n1.property=“
DEF9747D6
”返回关系(p),节点(p)限制100