Neo4j cql不通过WITH语句传入节点

Neo4j cql不通过WITH语句传入节点,neo4j,Neo4j,我使用以下查询来计算已创建用户的数量,如果具有该id的用户不存在,则创建一个用户: MERGE (uc:UserCounter) ON CREATE SET uc.count = 0 WITH uc MATCH (u:User{id:X}) WITH uc, count(u) as counts MERGE (u:User{id:X}) ON CREATE SET uc.count = uc.count+1, u.id = uc.count, u.creation_ts = TIM

我使用以下查询来计算已创建用户的数量,如果具有该id的用户不存在,则创建一个用户:

 MERGE (uc:UserCounter)
 ON CREATE SET uc.count = 0
 WITH uc
 MATCH (u:User{id:X})
 WITH uc, count(u) as counts
 MERGE (u:User{id:X})
 ON CREATE SET uc.count = uc.count+1, u.id = uc.count, u.creation_ts = TIMESTAMP()
 RETURN counts
我还将返回计数,以查看该用户之前是否存在。这个问题给了我答案
(没有行)。经过一些调试,我得出结论,uc节点直到最后才通过。我遗漏了什么?

这看起来像是同一个问题:如果用户还不存在,
MATCH
将不会返回任何行,尽管有
count()
聚合。您需要一个
可选匹配
,它才能工作


但您的查询似乎不正确:为什么要在id X上匹配/合并,然后在创建时用当前计数覆盖它?同时执行时,它是否能正常工作也值得怀疑。

这看起来像是同一个问题:如果用户还不存在,
匹配将不会返回任何行,尽管有
计数()
聚合。您需要一个
可选匹配
,它才能工作


但您的查询似乎不正确:为什么要在id X上匹配/合并,然后在创建时用当前计数覆盖它?同样令人怀疑的是,它在并发执行时是否能正常工作。

现在可以工作了,谢谢,在我的“可疑”查询背后,说来话长;)它现在可以工作了,谢谢,在我的“可疑”查询背后是一个很长的故事;)可能的重复可能的重复