Neo4j 5中如何过滤两节点间的边并隐藏图视图多余边?
解决Neo4j 5图视图显示多余边的问题
问题原因
你当前的查询用collect(r)将符合条件的边聚合为集合返回,Neo4j图视图在这种情况下,会默认加载返回节点之间所有存在的同类型边,而非仅显示你收集的过滤后边,导致多余边出现。
解决方案
方案1:直接返回节点与匹配的边(无聚合需求时)
如果只需要返回符合条件的单条/多条边,无需聚合,直接返回节点和边实例即可:
MATCH (s:Source {id: 54558})-[r:CCI{prop_1: 8}]->(t:Target) RETURN s, r, t
图视图会精准渲染这条匹配到的边,不会显示其他多余边。
方案2:展开聚合后的边集合(有聚合需求时)
如果必须先聚合边(比如需要做后续处理),可以通过UNWIND展开集合后再返回节点和边:
MATCH (s:Source {id: 54558})-[r:CCI{prop_1: 8}]->(t:Target) WITH s, collect(r) as filterededges, t UNWIND filterededges as r RETURN s, r, t
展开后返回具体的边实例,图视图就只会显示过滤后的边。
内容的提问来源于stack exchange,提问作者user20505088
相关产品推荐
相关产品推荐

