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

如何在Memgraph图数据库中查询给定节点的所有可达节点及对应距离?

查询Memgraph中指定节点的所有可达节点及距离

要获取给定节点的所有可达节点和对应的跳数距离,你需要使用Cypher的路径匹配语法,结合路径长度计算来实现。以下是几种实用的查询方式:

按节点ID匹配起始节点

如果已知目标起始节点的ID,比如123,可以用这个查询:

MATCH path=(start)-[*]->(reachable)
WHERE id(start) = 123
AND start <> reachable  // 可选:不返回起始节点自身
RETURN reachable, length(path) AS distance
ORDER BY distance

按节点属性匹配起始节点

如果起始节点有唯一标识属性(比如user_id: 456),可以通过属性定位:

MATCH path=(start {user_id: 456})-[*]->(reachable)
WHERE start <> reachable
RETURN reachable, length(path) AS distance
ORDER BY distance

关键细节说明

  • [*] 表示匹配任意长度的路径(1跳及以上,因为排除了自身);如果需要包含起始节点自身(距离为0),删除AND start <> reachable即可
  • length(path) 计算路径中的关系数量,也就是两个节点之间的跳数距离
  • ORDER BY distance 让结果按距离从小到大排序,方便查看层级关系

你之前使用的MATCH (n) RETURN n仅返回数据库中所有节点,没有关联到指定起始节点,也没有计算节点间的路径距离,所以无法满足需求。

内容的提问来源于stack exchange,提问作者Taja Jan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 19:10:59