2012-07-26 30 views
1

我正在使用neo4j,我有两个属性的节点:名称和ID。我有一个id的索引。 我与属性“CALL”有关系:“by_test”。该属性可以采用不同的值(任何节点的ID)。如何检索由关系链接的所有节点

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

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

节点1 - >节点2 - >节点3 - > .. - >的NodeN

  • 我怎样才能得到所有这些节点?

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

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

谢谢!

回答

1

使用暗号,可以查询该名单如下:

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绑定一个术语rCALL关系,你那么WHERE子句中使用检查的by_test财产每。

正如Michael Hunger指出的那样,r是一组关系,所以WHERE需要使用ALL来检查每个关系。

+0

谢谢,但我得到一个错误:未知的标识符'r'。 – kdelemme 2012-07-31 00:55:03

+0

您使用的是哪个版本的Neo4j?语法正在发生转变。 – akollegger 2012-08-01 02:13:41

+0

最后一个:1.8 – kdelemme 2012-08-06 22:17:24

相关问题