我试图为两个节点之间的关系编写合并查询。棘手的部分是,如果我没有在第二场比赛中找到节点,我想再做一场比赛来寻找一个"后退"具有不同过滤条件的节点用于合并请求。
简而言之:我想合并(A) - >(B)如果B存在而且(A) - >(C)如果B不存在。
这是我在查看不同帖子后想出的:
site.com/city1/123/some-text-here
site.com/city2/123/some-text-here
但是它没有按预期工作:如果两个可选匹配节点都不为null,则会为每个节点创建两个关系。
谢谢!
答案 0 :(得分:1)
你可以这样做:
MATCH (n:ArticleConv {id:"firstId"})
OPTIONAL MATCH (m:ArticleCode {name:"targetName"}) WHERE m.begin <= n.begin <= m.end
OPTIONAL MATCH (l:ArticleCode {num:"targetName"}) WHERE not(()-[:Version]->(l))
WITH n, coalesce(m,l) AS node WHERE node IS NOT NULL
MERGE (n)-[r:Link]->(node)
干杯