我的数据库中有这个简单的例子
每个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
有什么建议吗? 提前谢谢
答案 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;