1

是否有一种奇特或棘手的方法可以将任意 jsonpatch 数组应用于带有密码甚至 apoc 的地图?

所以如果我有

  • 一张地图{a: 0, b: 0, c: 0}
  • 一组编码在地图中的操作,比如说[{replace: "a", value: 1}, {replace: "b", value: 1}]。我知道这不是中继 jsonpatch,但这就是我所需要的。如果有一个成熟的 jsonpatch 解决方案,那就更好了。

我在密码中寻找一个程序、程序的串联或一种简洁的方式来产生{a: 1, b: 1, c: 0}

在https://neo4j-contrib.github.io/neo4j-apoc-procedures/#_map_functions中可以apoc.map.setKey(map, key, value)找到,但它一次只能操作一个值。我尝试将它与密码结合起来,但我确实需要改变地图而不是节点。FOREACH

我的尝试是

create (:TEST {a: 0, b: 0, c: 0});

match (t:TEST)
with t, [{replace: "a", value: 1}, {replace: "b", value: 1}] as refs
foreach(ref in refs
    | set t = apoc.map.setKey(properties(t), ref.replace, 
ref.value))
return *;

当然,我总是可以让客户端执行 jsonpatch 操作,但我更喜欢在 tx.xml 中执行此操作的方法。我知道我也可以自己编写一个程序作为最后的手段。

4

1 回答 1

1

像这样的东西怎么样...

MATCH (test:TEST {a:0, b:0, c:0})
SET test += {a: 1, b: 1}
RETURN test
于 2018-06-12T13:44:36.210 回答