【发布时间】:2014-11-23 10:28:23
【问题描述】:
我遇到了这个问题,我有一个使用 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
这行得通。当KNOWS 关系创建时,connected 是true 否则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
NOW connected 仅在标记匹配成功时返回 true 或 false。否则它会给出一个空的结果。无论MATCH 是否成功,我都希望connected 返回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
MERGE x-[:LOVES]->(y) <------------- EDIT
WITH zz, connected
RETURN zz, connected
解决匹配问题时的可选匹配,它将失败并合并给出null 错误。有什么建议吗?
【问题讨论】:
-
如果现在好,请接受答案。