Neo4j-关系从句和分离度

Neo4j-关系从句和分离度,neo4j,cypher,Neo4j,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 ..但在WHE

我有下面的密码查询,它按照我的预期工作

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

任何提示都值得欣赏。

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

您无法使用单个条件检查集合中所有关系的层次结构,您需要使用组合的
WHERE
all
检查每个关系的
层次结构

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