2016-08-05 81 views
0

sample graph的Cypher查询支持

嗨, 对于上面的图中,需要与下面的情形的暗号查询你的帮助。

1)返回关系R1连接到节点R1的所有节点。我想获得S1,S2,S3作为查询的输出

2)从其余节点R2,R3等,如果没有直接关系增加,有没有办法查询自下而上的节点即S1,S2等,从节点R5

感谢您的输入

+0

我是新来的Neo4j,下面是我尝试......所有的RNode和SNodes都有标签。但是没有得到正确的节点MATCH(:RNode {name:'R1'}) - (SNode) RETURN(SNode) – j2eeuser

+0

在你的例子中,SNode是一个变量名。如果SNodes是与其他节点不同的类型,则需要在此处有一个标签,否则这将在连接到R1的每个节点上匹配。您可能想重新阅读Cypher开发手册或浏览浏览器应用程序中的教程,以熟悉Cypher语法。 – InverseFalcon

+0

This works,MATCH(:RNode {name:'R1'}) - [*] - (n:S1)return n – j2eeuser

回答

1

您的图形缺少节点标签(即类型),如果所有节点都是同一类型和名称R1 ... S5则: 1)

MATCH (node:Node)-[:R1]->(x) where node.name ="R1" 
RETURN x 

这意味着找到所有连接的节点d到名为R1的节点的关系为R1

2)您的问题不清楚,您是否试图找到给定R5的所有S节点?给R5

MATCH(node:Node)-[:*1-7]-(node-s:Node) where node.name="R5" AND node-s.name =~ "S.*" 
RETURN (node-s) 

[:*1-7] 意味着7

长度为1的路径。这会更容易,如果你的节点有标签...