You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Neo4j中查询节点A到E的关系类型(toward/backward)

解决Neo4j多步路径查询中过滤关系类型的问题

你的核心问题是未在路径匹配中指定关系类型,导致Neo4j匹配了所有符合方向的关系(包括toward和backward)。要只获取全为toward类型的路径,只需在关系匹配部分明确限定类型即可:

正确查询语句

MATCH p = (n:City{name: 'A'})-[r:toward*]->(m:City{name:'E'})
RETURN nodes(p), r

原查询返回双向关系的原因

原查询-[r*]->中的*表示任意长度的关系,但未限定关系类型。Neo4j会匹配所有当前节点向外指向的关系——而你的backward关系是反向节点的向外指向(比如B→A的backward关系,对B来说属于outgoing关系),当路径出现反向跳转(如A←B→C→D→E)时,这类混合关系的路径也会被匹配到,最终返回包含backward的结果。

额外验证方式

如果需要确认路径中每一步的关系类型,可以展开路径中的关系逐一查看:

MATCH p = (n:City{name: 'A'})-[r:toward*]->(m:City{name:'E'})
UNWIND r AS rel
RETURN nodes(p), type(rel)

内容的提问来源于stack exchange,提问作者Александр Сосо

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 08:36:28