【发布时间】:2014-12-13 09:00:48
【问题描述】:
情况:具有多个端点的图,每个端点都与主图有一个连接。在加入主图之前,此连接可能会遍历几个中间的 node->relationship->node。每个连接的最后一个节点都有一个特定的属性。
我有一个查询沿着这条路径走,并找到最终连接到主图的节点。我有另一个返回端点节点列表的查询。如何使用查询 2 中的节点列表来输入查询 1,以便我可以为查询 2 的每个成员获取查询 1 的结果?
理想情况下,我想要类似 FOREACH 之类的东西,但由于查询 1 以 match 语句开头,所以就不行了。它不做任何改变。类似于create outer_list -> each outer_list_member -> run next query and return single result -> repeat with next list_member
- 查询 1:
match p=(n {individual end node property})-[r: JOINS*1..5]-(m { joining node property }) return n.name, length(p) as len, m.name order by len limit 1
-- 这给了我结束节点和加入节点(通过最短路径) - 查询 2:
match node_list = (n {property of all end nodes})
如果我手动指定给定端节点的唯一属性(“id”),我可以运行 查询 1 并获得正确的结果。我想创建一个所有端节点及其连接节点的列表。
【问题讨论】:
-
你有没有想过如何做到这一点?我也有类似的需求。
-
已经有一段时间了,但 IIRC 我是用代码完成的。我不记得找到纯密码方法。
-
好的,谢谢。我在想我可能不得不这样做:/