首页 > 解决方案 > 迭代子路径与路径元素

问题描述

这个问题适用于任何 neo4j 路径,但为了清楚起见,让我们借用答案 2 中的公交路线数据到这篇文章

新4J | 关系列表上的 Cypher 聚合

我们可以运行这个查询

MATCH p=(o:BusStop)-[*]->(d:BusStop) RETURN p

正如我们所料,得到一堆节点和关系。

p [ { "id": 1 } , { "fare": 10, "day": "Sat" }... 等等

我对上述问题的看法是,在 Python 中处理结果时,我不得不遍历各个节点和关系。

但是,如果我想遍历完整的 (startnode)-[*]-(endnode)子路径怎么办?

在浏览器中,各个子路径由水平线分隔。如何获得与 py2neo 中的那些分隔符等效的值?

谢谢。

标签: neo4jpy2neo

解决方案


Neo4j 结果是一个记录流。对于给定的查询,流中的每条记录都将是一个单独的路径,因此您将使用返回结果游标的方法来迭代每个路径。

如果您想要一个作为路径集合的结果,您可以返回它:

RETURN collect(p) as results

推荐阅读