在我的图表中,我在两个节点之间有多个关系。对于前者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
答案 0 :(得分:2)
答案 1 :(得分:0)
您的查询可以简化,具体取决于数据模型:
(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
注意:您不必在查询的r
部分中指定关系的名称(MATCH
)。
另外,请检查@logisima的处理Web浏览器UI的答案。