如何使用具有可变长度关系的参数?
MATCH path=(:Person {id: {id}})=[:HAS_FRIEND*0..{num_friends}]->(:Person)
我尝试创建一个通用查询,以便我可以传递一个值' num_friends'进入cypher查询我需要的各种关系级别。
我收到错误,所以我想知道这样的事情会怎么做?
答案 0 :(得分:2)
参数不能用作跳数。
但您可以使用path expander
中的apoc
:
match (P:Person {id: {id}}) with P
call apoc.path.expand( P, 'HAS_FRIEND>', 'Person', 0, {num_friends}) yield path
return path
改编评论:
match (P:Person {id: {id}}) with P
call apoc.path.expand( P, 'HAS_FRIEND>', 'Person', 0, {num_friends}) yield path
with path, last(nodes(path)) as lst where not (lst)-[:HAS_FRIEND]->(:Person)
return path