所以我的顶级问题是我正在尝试返回MERGE
是否导致创建新节点。
为了做到这一点,我想我可以创建一个简单的临时布尔值,使用ON CREATE
将其设置为TRUE
我的想象如何运作:
MERGE(: Person {id:'Tom Jones'})
WITH false as temp_bool
ON CREATE set temp_bool = true
RETURN temp_bool
显然这不起作用。
我正在寻找一种在Cypher查询中创建任意临时值的方法,并且能够最终返回这些变量。
由于
答案 0 :(得分:10)
你可以做你想做的事,这里是如何(我的第一个答案的组合,@ cybersam&#39的补充)。您只需使用您创建的节点属性执行此操作,然后删除,而不是像您一直在尝试的未绑定变量。
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 :(得分:0)
在这样的简单合并情况下,可以创建最多一个节点,一种更简洁的方法来实现您正在寻找的内容,可以检查结果统计信息。我应该检查使用Bolt API的情况:
results.consume().counters.nodes_created = 1