我需要在r1和r2的关系属性上进行可选匹配。
r1是n层深,所以我得到错误:
"类型不匹配:预期的地图,节点或关系但是 收集"
MATCH (a:node{x:”foo”} )-[r1:sub*]->(b)-[r2:inst]->(c)
USING INDEX a:node(x)
WHERE r1.value = v2.value
RETURN b,r2,c
当我不知道前面的价值时,如何将r1.value与r2.value进行比较?
谢谢!
答案 0 :(得分:1)
MATCH (a:node{x:"foo"})-[r1:sub*]->(b)-[r2:inst]->(c)
USING INDEX a:node(x)
UNWIND r1 as r
WITH b, r2, c, r
WHERE r.value = r2.value
RETURN b,r2,c
答案 1 :(得分:1)
我想这就是你要找的东西:
MATCH (a:node{x:”foo”} )-[r1:sub*]->(b)-[r2:inst]->(c)
USING INDEX a:node(x)
WHERE last(r1).value = v2.value
RETURN b,r2,c
说明:r1
是集合。这完全合乎逻辑,因为你指定了一个任意长度。
因此,如果您需要将此链中的最后关系与某些特定关系进行比较,则可以使用last
函数。