Neo4J在Cypher中创建临时变量

Neo4J在Cypher中创建临时变量

问题描述:

所以我的顶级问题是我试图返回MERGE是否导致创建新节点。Neo4J在Cypher中创建临时变量

为了做到这一点,我想我可以使用ON CREATE

我怎么想它的工作只是创建一个简单的临时布尔值设置为true:

MERGE(: Person {id:'Tom Jones'}) 
WITH false as temp_bool 
ON CREATE set temp_bool = true 
RETURN temp_bool 

显然,这是行不通的。

我正在寻找一种在Cypher查询中创建任意临时值的方法,并且有能力最终返回这些变量。

感谢

你可以做你想做的,这里是如何(我的第一个答案的结合,@ cybersam的添加)。您只需使用您创建的节点属性执行此操作,然后删除,而不是像您一直在尝试的那样使用未绑定的变量。

MERGE(tom:Person {id:'Tom Jones'}) 
ON CREATE set tom.temp_bool = true 
ON MATCH set tom.temp_bool = false 
WITH tom, tom.temp_bool AS result 
REMOVE tom.temp_bool 
RETURN result; 
+1

其实,你可以在同一查询摆脱临时属性:'MERGE(TOM:人{ID:“汤姆·琼斯”}) 上创建设置tom.temp_bool = true ON MATCH set tom.temp_bool = false WITH tom,tom.temp_bool AS result REMOVE tom.temp_bool RETURN result;' – cybersam 2015-02-06 22:23:03

简单合并类似案例,其中最大的一个节点都可以创建一个更清洁的方式来实现你在找什么可检查结果统计。我的情况下使用螺栓API,你应该检查:

results.consume().counters.nodes_created = 1