我想多次更新节点属性(节点)。密码查询是什么样子的?
例如,我们可以通过运行下面的cypher查询来单独更新节点属性
MATCH (a:Span {id:"A"})
SET a.name = "checkout";
和
MATCH (b:Span {id:"B"})
SET b.name = "login";
分开
但是有办法一起运行更新吗?我尽力了
MATCH (a:Span {id:"A"})
SET a.name = "checkout"
MATCH (b:Span {id:"B"})
SET b.name = "login";
Neo4j只是抛出“Neo。客户端错误。Statement.SyntaxError”,并且不起作用。
1条答案
按热度按时间pvabu6sv1#
您的查询:
是不法律的的,因为像
SET
这样的“写”子句后面不能跟一个像MATCH
这样的“读”子句,除非中间有一个WITH
子句。但是这个查询:
如果可以有多个“A”节点,则是无效的。例如,如果有50个“A”节点,则每个“B”节点将设置其
name
50次。为了避免多次为同一属性分配相同的值,可以使用聚合将N个“A”行减少到仅1行,然后再匹配“B”:
或者可以使用单元子查询,它“”不会更改封闭查询的行数。“例如,你可以这样做: