在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属性。
怎么可能这样呢?
谢谢。
答案 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()函数吗?