Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 合并查询:设置映射和';创建';创设时的财产_Neo4j_Cypher - Fatal编程技术网

Neo4j 合并查询:设置映射和';创建';创设时的财产

Neo4j 合并查询:设置映射和';创建';创设时的财产,neo4j,cypher,Neo4j,Cypher,我试图创建一个用户,如果它还不存在,那么就知道是否创建了 此语法始终执行第二组: MERGE (n:User {email: {email}}) ON CREATE n SET n = {user} SET n.created = timestamp() WITH n WHERE n.created = timestamp() RETURN n 我猜第二个集合实际上不是ON CREATE子句的一部分,如下所示: MERGE (n:User {email: {email}}) ON CR

我试图创建一个用户,如果它还不存在,那么就知道是否创建了

此语法始终执行第二组:

MERGE (n:User {email: {email}})
ON CREATE n
  SET n = {user}
  SET n.created = timestamp()
WITH n WHERE n.created = timestamp()
RETURN n
我猜第二个集合实际上不是ON CREATE子句的一部分,如下所示:

MERGE (n:User {email: {email}})
ON CREATE n
  SET n = {user}
SET n.created = timestamp()
WITH n WHERE n.created = timestamp()
RETURN n
但是,多个集合的替代语法会导致“错误:预期的有效查询体”:


作为一种解决方法,我决定将创建的时间戳与用户地图一起传递,但是有没有办法做到这一点?它是否按预期工作,或者这里是否有bug,也许?

最后一个在我看来应该可以工作——您能提出github问题吗?我们来看看neo的人怎么说,但我认为用逗号分隔的集合应该没问题

或者,您可以在创建时执行多个操作:

MERGE (n:User {email: {email}})
ON CREATE n
  SET n = {user}
ON CREATE n
  SET n.created = timestamp()
WITH n WHERE n.created = timestamp()
RETURN n

即使使用非合并查询,似乎也无法混合和匹配设置映射和属性:。你认为我还应该为此制造问题吗?或者这是预期的?如果你不这样做,我会的。:)不幸的是,你提议的解决办法似乎不起作用。我得到
节点[23036]上不存在属性“created”
。它似乎没有设置创建的timestamp.Doh。你是按同样的顺序做的吗?也许试着换一下?(这两个选项将创建)。我实际上无法测试它。我猜它会在所有事情之后处理map参数集并将其清除。这对我来说似乎也不对,但也许你不应该有两个/
MERGE (n:User {email: {email}})
ON CREATE n
  SET n = {user}
ON CREATE n
  SET n.created = timestamp()
WITH n WHERE n.created = timestamp()
RETURN n