我需要加入两个不同的图。我想基于联接条件中变量路径中的节点应用其他条件。下面的查询工作正常。
query1 =
match(a:iknode)-[*1..2]->(c:iknode)
match(d:flights17)-[r1]-(e:flights17)
where d.alias contains a.name return a,c
但是,它返回无关的记录。我需要在[* 1..2]部分中出现的节点上应用一些过滤器。这也可以。
match p = (a:fbnode)-[*1..2]->(c:fbnode)
where a.name = 'flights' and ANY (x IN nodes(p) WHERE x.name in ['leaving'])
return nodes(p)
我尝试了以下无效:
match p = (a:iknode)-[*1..2]->(c:iknode)
(d:flights17)-[r1]-(e:flights17)
where d.alias contains a.name and ANY (x IN nodes(p) WHERE x.name in type(r1))
set e.f =c.name
如何重写以上查询?
一个选项是从第一个查询获取结果,然后在单独的查询(或python)中过滤结果。但是,我想在查询本身中执行此操作。 ALL可以代替ANY。我还想在过滤时排除起点和终点。