cypher特定关系的和属性

时间:2015-10-24 11:12:26

标签: cypher

我的数据库中有这个简单的例子

enter image description here

每个Grid-Node之间的关系都有一个distance和time属性。 红色节点代表用户。我想为用户检索最近的出租车。

首先,我有一个查询,知道我有出租车的网格

MATCH (u:User)-[r:PICK_UP]->(g:Grid)-[r2:TO*1..3]-(g2:Grid)<-[r3:TRIP|:IS_ON]-(t:Taxi) 
RETURN g2

结果我得到了Grid3,7,8和11。 但我想检索满足条件r2.time <= 5

的网格

在这种情况下如何使用reduce操作:

reduce(totalTime = 0, x IN ---?|totalTime + x.time) AS totalTime
WHERE totalTime <= 5

有什么建议吗? 提前谢谢

1 个答案:

答案 0 :(得分:1)

我会尝试这样的事情:

MATCH (:User)-[:PICK_UP]->(g1:Grid),
      p = (g1)-[:TO*..2]-(g2:Grid),
      (g2)<-[:TRIP|IS_ON]-(:Taxi) 
WITH g2, REDUCE(totalTime = 0, x IN RELATIONSHIPS(p) | totalTime + x.time) AS totalTime
WHERE totalTime <= 5
RETURN g2;