在我的图中,两个节点之间有多个关系。例如:A-[HAS_P]->B
、A-[HAS_Q]->B
和A-[HAS_R]->B
。我该如何排除HAS_R
而仍然显示模式A-[]-B
,并保留其他两个关系HAS_P
和HAS_Q
?我尝试了这个查询,但它显示所有关系,并没有排除HAS_R
关系。
MATCH x = (A)-[r*..4]-(B)
WHERE NONE(r in relationships(x) WHERE type(r)="HAS_R")
RETURN x
根据数据模型,您的查询可能可以简化:
(1) 如果你只有以下三种关系类型 (HAS_P
, HAS_R
和 HAS_Q
), 你可以指定所允许的两种:
MATCH x = (A)-[:HAS_P|HAS_Q*..4]-(B)
RETURN x
(2)如果您可能有其他关系类型(未来可能会出现更多):
MATCH x = (A)-[*..4]-(B)
WHERE NONE(r in relationships(x) WHERE type(r) = 'HAS_R')
RETURN x
注意:在查询的MATCH
部分中,您不必指定关系(r
)的名称。
另外,请查看@logisima的答案以处理Web浏览器UI。