我正在使用neo4j,我有两个属性的节点:name和id。我有一个关于id的索引。 我与一个属性“CALL”有关系:“by_test”。此属性可以采用不同的值(任何节点的id)。
两个节点可以有多个CALL关系,具有不同的by_test属性值。
因此,假设我有1..N个节点通过相同的CALL.by_test属性值链接。
Node1 - >节点2 - >节点3 - > .. - >节点N
如何获得所有这些节点?
我是否需要对关系进行索引?
我是否必须建立动态关系?而不是CALL.by_test = value,使用值有关系。
谢谢!
答案 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
来检查每个关系。