如何在Neo4j中获取包含节点D的多服务间关系路径?
解决Neo4j查询中节点D未显示的问题
你的问题核心是返回的路径p仅包含A到F的路径,节点D和对应的CAN_WRITE关系并未被纳入返回范围,所以查询结果里不会展示D。
调整方案1:返回所有匹配元素
修改查询,把D节点和对应的关系加入返回列表,Neo4j浏览器会自动展示所有相关节点与关系:
MATCH p=(m:Service WHERE m.name = "A")-[r1:CAN_READ]->(n:Service)-[r2:CAN_WRITE]->(o:Service WHERE o.name = "F"), (n)-[r3:CAN_WRITE]->(t:Service WHERE t.name = "D") RETURN p, n, t, r3
调整方案2:拆分路径变量返回
如果需要把到D的路径单独作为路径变量返回,可以这样写:
MATCH pathAF=(m:Service WHERE m.name = "A")-[r1:CAN_READ]->(n:Service)-[r2:CAN_WRITE]->(o:Service WHERE o.name = "F"), pathND=(n)-[r3:CAN_WRITE]->(t:Service WHERE t.name = "D") RETURN pathAF, pathND
这样结果会同时展示A到F的路径、中间节点到D的路径,可视化时就能呈现你需要的高亮部分。
关键说明
Neo4j仅会展示RETURN子句中明确指定的元素。原查询只返回了A到F的路径p,D节点和对应关系虽被匹配到,但未被返回,因此不会出现在图中。
内容的提问来源于stack exchange,提问作者basic
相关产品推荐
相关产品推荐

