如何检索由关系链接的所有节点

时间:2012-07-26 20:18:46

标签: neo4j

我正在使用neo4j,我有两个属性的节点:name和id。我有一个关于id的索引。 我与一个属性“CALL”有关系:“by_test”。此属性可以采用不同的值(任何节点的id)。

两个节点可以有多个CALL关系,具有不同的by_test属性值。

因此,假设我有1..N个节点通过相同的CALL.by_test属性值链接。

Node1 - >节点2 - >节点3 - > .. - >节点N

  • 如何获得所有这些节点?

    1. 我是否需要对关系进行索引?

    2. 我是否必须建立动态关系?而不是CALL.by_test = value,使用值有关系。

谢谢!

1 个答案:

答案 0 :(得分:1)

使用Cypher,您可以像这样查询该列表:

START n=node:node_auto_index(name="one") 
MATCH p=(n)-[r:CALL*1..]->(m)
WHERE ALL(x in r WHERE x.by_test = 3)
RETURN n,m

MATCH中,您将术语r绑定到CALL关系,然后在WHERE子句中使用该关系来检查by_test属性每。

正如Michael Hunger所说,r是一组关系,因此WHERE需要使用ALL来检查每个关系。