在cypher中将多个关系作为一个返回

时间:2017-04-27 13:59:01

标签: neo4j cypher

考虑一个查询从节点A到节点D的位置,你必须经历几个关系,例如

setMinLatitude()

我希望动态返回一个人可以在他们的状态中去的所有可能的公园,而不会在查询中返回状态本身,以便返回的关系看起来像

(:Person)-[:LIVES_IN]->(:State)-[:HAS]->(:Parks)

换句话说:

enter image description here

查询会是什么样的?

感谢您的时间!

2 个答案:

答案 0 :(得分:3)

您可以使用APOC返回类似这样的虚拟关系......

MATCH (person:Person {name: 'Dave'})-[:LIVES_IN|HAS*]->(park:Park)
WITH person, park
CALL apoc.create.vRelationship(person,'CAN_VISIT',{}, park) YIELD rel
RETURN person, park, rel

答案 1 :(得分:1)

如果你想获得一个人可以去的所有公园你可以简单地查询:

MATCH (:Person)-[*]->(p:Parks)
RETURN p