2017-07-14 101 views
0

My graph获取与neo4j分开的所有路径Cypher

我的起始节点是A.端节点是E.

什么可以在的Neo4j的cyper查询,使得我将得到的结果作为

路径中的一个:A> B> C> d>电子
路径中的两个:A> B>我试过了:
MATCH p =(n) - [*] - >(m)其中n.name ='A'和m.name ='E'返回p
但我得到完整的节点列表不是分离的。

在此先感谢

+0

你说的“完整”的意思与“分离”节点列表? – cybersam

回答

1

让我们看看图你有:

CREATE (a:Node {name: "A"}) 
CREATE (b:Node {name: "B"}) 
CREATE (c:Node {name: "C"}) 
CREATE (d:Node {name: "D"}) 
CREATE (e:Node {name: "E"}) 
CREATE (f:Node {name: "F"}) 
CREATE (g:Node {name: "G"}) 
MERGE (a)-[:HAS]->(b)-[:HAS]->(c)-[:HAS]->(d)-[:HAS]->(e) 
MERGE (c)-[:HAS]->(f)-[:HAS]->(g)-[:HAS]->(e); 

这是正确的?

那么,你写的语句返回两个路径......当然,在浏览器中的可视化将显示完整的图形,但看看其他格式,你会看到你得到两个“行“每个包含一条路径。

你可以看到通过尝试以下操作:

MATCH p=(n1:Node)-[*]-(n2:Node) 
WHERE n1.name="A" 
AND n2.name="E" 
RETURN p LIMIT 1; 

,将返回只有一条路径,浏览器将只显示一个。这只是正确解释/处理结果的问题。这将只显示第二路径:

MATCH p=(n1:Node)-[*]-(n2:Node) 
WHERE n1.name="A" 
AND n2.name="E" 
RETURN p SKIP 1 LIMIT 1; 

希望这有助于 汤姆

相关问题