在where子句中引用可变长度关系路径

时间:2014-05-06 13:36:19

标签: database neo4j cypher

我有可变长度路径的查询。是否可以在where中使用关系来过滤路径(不使用with),例如:

match (u:user{id:1})-[r*1..2]->(n) where u-[r[0]]-(:event) return n

这会有效,但速度会慢一些:

match (u:user{id:1})-[r*1..2]->(n) with u, r[0] as r0, n where u-[r0]-(:event) return n

1 个答案:

答案 0 :(得分:1)

修改

这应返回相同的结果,但没有WITH子句:

MATCH (u:user{id:1})-[]->(e:event)
OPTIONAL MATCH (e)-[]->(x)
RETURN coalesce(x, e) as n;