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 内で実行する方法を好みます。最後の手段として、自分でプロシージャを作成することもできます。