Neo4j Cypher:如果多次创建,如何停止重复SET

时间:2013-08-07 10:25:21

标签: neo4j cypher

我有一个复杂的密码查询,它创建多个节点并增加这些节点上的一些计数器。为了便于举例,这里是我想要做的简化版本:

START a = node(1), e = node(2)
CREATE a-[r1]->(b {})-[r2]->(c {}), e-[r3]->b-[r4]->(d{})
SET a.first=a.first+1, e.second=e.second+1
RETURN b

问题是因为有两个CREATE命令,SET命令运行两次,并且值按预期递增2而不是1。我已经看过是否可以合并多个CREATE语句而我不能。

我最初的想法是将不同的创建分离为批量查询,但我想知道是否还有其他选项。

1 个答案:

答案 0 :(得分:1)

您在哪里执行此查询?您使用的是什么版本的neo4j?

我去了console.neo4j.org并成功运行了以下内容,它正确地在a.first和e.second中添加了一个:

START a = node(1), e = node(2) 
CREATE a-[r:KNOWS]->b-[r2:KNOWS]->c, e-[:KNOWS]->b-[:KNOWS]->d 
SET a.first=a.first+1, e.second=e.second+1 
RETURN b