Neo4j-关系条款和分离度

时间:2019-05-13 09:33:47

标签: neo4j cypher

我有以下Cypher查询,符合我的预期。...

MATCH (n1 {id: "25fd62e4-9566-4cbd-a443-b2b8d739d6f4"})-[r]-(n2)
WHERE r.hierarchy IN ['Ge', 'H']
RETURN n1, r, n2

我想在此查询中添加分离度。

这有效

MATCH (n1 {id: "25fd62e4-9566-4cbd-a443-b2b8d739d6f4"})-[r*1..4]-(n2)
RETURN n1, r, n2

....但是添加WHERE子句不会:

MATCH (n1 {id: "25fd62e4-9566-4cbd-a443-b2b8d739d6f4"})-[r*1..4]-(n2)
WHERE r.hierarchy IN ['Ge', 'H']
RETURN n1, r, n2

感谢任何提示。

1 个答案:

答案 0 :(得分:2)

对于可变长度路径模式(您的上一个查询),变量 r 是关系的集合,而不是单个关系。

您无法通过单个条件检查集合中所有关系的层次结构,您需要将hierarchyWHERE结合起来检查每个ALL。 / p>

MATCH (n1 {id: "25fd62e4-9566-4cbd-a443-b2b8d739d6f4"})-[rels*1..4]-(n2)
WHERE ALL(r in rels WHERE r.hierarchy IN ['Ge', 'H'])
RETURN n1, rels, n2