1

jsonpatch の任意の配列をcypherまたは apoc を使用してマップに適用するための空想的またはトリッキーな方法はありますか?

だからもし私が持っているなら

  • 地図{a: 0, b: 0, c: 0}
  • マップにエンコードされた操作のコレクション、たとえば[{replace: "a", value: 1}, {replace: "b", value: 1}]. relay jsonpatch ではないことは知っていますが、必要なのはそれだけです。本格的な jsonpatch ソリューションがあれば、なおさらです。

私は手順、手順の連結、または生成する暗号のきちんとした方法を探します{a: 1, b: 1, c: 0}

https://neo4j-contrib.github.io/neo4j-apoc-procedures/#_map_functionsにありapoc.map.setKey(map, key, value)ますが、一度に 1 つの値しか操作できません。それをサイファーと組み合わせてみましたが、実際にはノードではなくマップを変更する必要があります。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 内で実行する方法を好みます。最後の手段として、自分でプロシージャを作成することもできます。

4

1 に答える 1