Cypher - 仅显示节点名称,而不是路径变量中的完整节点

时间:2016-10-30 23:00:14

标签: neo4j cypher

在Cypher中我有以下查询:

MATCH p=(n1 {name: "Node1"})-[r*..6]-(n2 {name: "Node2"})
RETURN p, reduce(cost = 0, x in r | cost + x.cost) AS cost

它按预期工作。但是,它打印完整的n1节点,然后是完整的r关系(及其所有属性),然后是完整的n2。

我想要的只是显示n1的name属性的值,r的type属性以及n2的name属性。

怎么可能这样呢?

谢谢。

1 个答案:

答案 0 :(得分:1)

请求的棘手部分是r的type属性,因为r是路径关系的集合,而不是单个关系。我们可以使用EXTRACT为路径中的所有关系生成关系类型列表。看看这是否适合您:

MATCH (n1 {name: "Node1"})-[r*..6]-(n2 {name: "Node2"})
RETURN n1.name, EXTRACT(rel in r | TYPE(rel)) as types, n2.name, reduce(cost = 0, x in r | cost + x.cost) AS cost

您似乎也在计算路径的费用。你看过shortestPath()函数吗?