全路径查询

目前场景(基于开源版本3.4.1),根据指定起始节点开始,查询这个节点所有路径方向,最后结束的点要求是没有出度方向的内容,当前实现方式
MATCH path1=(v1:person)-[e1…]->[v2]
WHERE id(v1)==“xxx”
AND size((v2)-[
]->()) == 0
return path1
当前有两个问题:
一:MATCH path1=(v1:person)-[e1…]->[v2] 和MATCH path1=(v1:person)-[]->[v2] 这种写法是否等效
二:是否有其他match语句方式,更高效一点

一:MATCH path1=(v1:person)-[e1…]->[v2] 和MATCH path1=(v1:person)-[ ]->[v2] 这种写法是否等效
F.Yang等效;
二、MATCH path1=(v1:person)-[e1…]->[v2]
WHERE id(v1)==“xxx”
AND size((v2)-->()) == 0
return path1

MATCH path1=(v1:person)-[e<em>1…]->[v2]
WHERE id(v1)==“xxx”
AND not (v2)-->()
return path1

match 如果不行就只能用 go 了,参考如下:

$v1 = go 1 to 10 steps from "xxxxxxxx" over * yield distinct id($$) as ids; 
$v2 = go from $v1.ids over * yield distinct $v1.ids as ids; 
yield $v1.ids as ids minus yield $v2.ids as ids
1 个赞