同様の質問がMichael Hungerによって2013年初旬に回答されましたが、Neo4j/Cypher 3.xへの回答を翻訳できません。複数のノードを1つのクエリで更新し、それぞれが異なるプロパティ/値のペアを持つ
https://groups.google.com/forum/#!msg/neo4j/qZWhbMtMCTE/r3W7OZfCgAgJ
各ノードは、UUIDの値を持つプロパティで有しています。 場合によっては、 "second"プロパティはブール値で、その他の場合は文字列です。
これらのノードの一部を更新し、それぞれにプロパティを変更または追加したいとします。
(n1 {uuid:"foo1", enabled: true})
(n2 {uuid:"foo2", example: "foo"})
(n3 {uuid:"foo3"})
私はもちろん、それぞれに別々のMERGEおよびSET文を作成することができ
が、私はよりエレガントな解決策があった期待していた。
MATCH (S {uuid:"foo0"})
MERGE (n2 {uuid:"foo2"})-[:BELONGS_TO]->(S)
SET n2.example="bar"
MERGE (n3 {uuid:"foo3"})-[:BELONGS_TO]->(S)
SET n3.enabled=true
「BELONGS_TO」関係は何ですか? – cybersam
特定の関係名「BELONGS_TO」は任意です。関係の目的は、このタイプのすべてのノード、つまりMERGEによって潜在的に作成されたノードが「S」ノードに接続されていることを保証することでした。 – DRB