【发布时间】:2017-07-31 17:03:08
【问题描述】:
我想用 cypher 构造一个查询,它执行以下操作:
- 在 2 个节点之间创建关系,如果不存在关系,则使用包含持续时间的属性
- 如果关系已经存在,更新持续时间属性 是两种关系中持续时间最短的
比较和更新部分是我无法在密码中实现的。因此,非常感谢您对这部分的任何帮助。
【问题讨论】:
我想用 cypher 构造一个查询,它执行以下操作:
比较和更新部分是我无法在密码中实现的。因此,非常感谢您对这部分的任何帮助。
【问题讨论】:
您需要结合MERGE ON CREATE | ON MATCH 和CASE expression。例如:
MATCH (A:City {id: 1})
MATCH (B:City {id: 2})
WITH A, B, toInteger(rand()*100) as newDuration
MERGE (A)-[r:next]->(B)
ON CREATE SET r.duration = newDuration
ON MATCH SET r.duration = CASE
WHEN r.duration > newDuration
THEN newDuration
ELSE r.duration
END
RETURN r.duration
【讨论】: