Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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
如果后续匹配失败,则WITH中的Neo4j值将消失_Neo4j_Cypher - Fatal编程技术网

如果后续匹配失败,则WITH中的Neo4j值将消失

如果后续匹配失败,则WITH中的Neo4j值将消失,neo4j,cypher,Neo4j,Cypher,我遇到了这个问题,我有一个使用WITH MATCH (u1:user {username: "pewpewlasers"}), (u2:user {username: "pewpew2"}) MERGE (u1)-[y:KNOWS]->(u2) ON CREATE SET y.connected = 1 WITH y, has(y.connected) AS connected REMOVE y.connected RETURN connected 这很有效。当知道关系被创建时,已连接

我遇到了这个问题,我有一个使用
WITH

MATCH (u1:user {username: "pewpewlasers"}), (u2:user {username: "pewpew2"})
MERGE (u1)-[y:KNOWS]->(u2)
ON CREATE SET y.connected = 1
WITH y, has(y.connected) AS connected 
REMOVE y.connected
RETURN connected
这很有效。当
知道
关系被创建时,
已连接
true
else
false
。所以这个密码返回
true
false
。现在我想扩展这个

MATCH (u1:user {username: "pewpewlasers"}), (u2:user {username: "pewpew2"})
MERGE (u1)-[y:KNOWS]->(u2)
ON CREATE SET y.connected = 1
WITH y, has(y.connected) AS connected 
REMOVE y.connected
WITH y, connected
MATCH (x)-[zz:LIKES]->(y)    <------------- this match
WITH zz, connected
RETURN zz, connected

可选匹配解决匹配问题时,它将失败,并出现merge giving
null
错误。有什么建议吗?

我想这样做可能会奏效

MATCH (u1:user {username: "pewpewlasers"}), (u2:user {username: "pewpew2"})
MERGE (u1)-[y:KNOWS]->(u2)
ON CREATE SET y.connected = 1
WITH y, has(y.connected) AS connected 
REMOVE y.connected
WITH y, connected
OPTIONAL MATCH (x)-[zz:LIKES]->(yy)
FOREACH(ignoreMe IN CASE WHEN yy IS null THEN [] ELSE [1] END |
    MERGE x-[:LOVES]->(yy))
WITH zz, connected
RETURN zz, connected

可选匹配允许保留所有初始行,如果没有关系,则“zz”的值为空。

您的解决方案是有意义的。然而,我错过了一个细节。如果您有时间,请查看编辑。谢谢。谢谢你的回答,但这给了我一个错误:类型不匹配:y已经定义了冲突的类型关系(预期节点)啊yeh,因为y是前面定义的。在这种情况下,我们可以称第二个为“yy”。如果现在答案是好的,请接受。
MATCH (u1:user {username: "pewpewlasers"}), (u2:user {username: "pewpew2"})
MERGE (u1)-[y:KNOWS]->(u2)
ON CREATE SET y.connected = 1
WITH y, has(y.connected) AS connected 
REMOVE y.connected
WITH y, connected
OPTIONAL MATCH (x)-[zz:LIKES]->(yy)
FOREACH(ignoreMe IN CASE WHEN yy IS null THEN [] ELSE [1] END |
    MERGE x-[:LOVES]->(yy))
WITH zz, connected
RETURN zz, connected