迈克尔·亨格在2013年初回答了类似的问题,但我无法将他对Neo4j/Cypher 3.x的回应翻译出来.
https://groups.google.com/forum/#!msg/neo4j/qZWhbMtMCTE/r3W7OZfCgAgJ
每个节点都具有UUID值的属性.在某些情况下,"second"属性是布尔值,在其他情况下是字符串.
我想更新其中一些节点,更改或添加属性到每个节点.
(n1 {uuid:"foo1", enabled: true})
(n2 {uuid:"foo2", example: "foo"})
(n3 {uuid:"foo3"})
Run Code Online (Sandbox Code Playgroud)
我当然可以为每个创建一个单独的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
Run Code Online (Sandbox Code Playgroud)