我想在cypher中构建一个执行以下操作的查询:
比较和更新部分是我无法在密码中实现的。所以对此部分的任何帮助都非常感谢。
答案 0 :(得分:9)
您需要合并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