我无法找到在一个Cypher查询中执行条件更新的简单解决方案。
假设我有游戏节点且游戏有州属性...
我希望能够执行以下操作:
If game.state = X then set game.state = Y else set game.state= Z
是否可以在一个Cypher查询中实现?你的回答非常感谢。
答案 0 :(得分:1)
尝试这样的方法来模拟if...else
语句:
START a=node(*), b=node(*)
WHERE a.state = X AND NOT b.state = X
SET a.state = Y, b.state = Z;
首先,START
表达式将加载所有节点。然后,WHERE
表达式将选择state
等于X
的所有节点并将其设置为a
,并选择state
不相等的所有节点到X
并将其设为b
。最后,SET
表达式将设置所有a
个节点并将state
设置为Y
,并将获取所有b
个节点并设置{{1}转到state
。