我的问题是..给定两个节点,节点A和节点B,有一个密码查询,它从节点A中删除所有关系,并将它们连接到节点B,以便之前连接到节点A的所有节点都是现在附加到节点B?
我确信这样的查询有很多用例,但我的用例是合并多个社交网络登录:
鉴于我有一个成员帐户(member1)使用谷歌作为登录提供商我有一个单独的成员帐户(member2)使用Facebook作为登录提供商当member1尝试连接到member2用作相同的Facebook帐户登录提供者和member1请求合并(合并帐户)和member2确认合并然后成员member1和member2的帐户将合并一个成员将使用谷歌和Facebook作为登录提供者.
什么是cypher查询来执行此操作?
编辑:现在有方法,动态指定关系类型.因此,下面的解决方法仅限于具有相同类型且没有属性的关系.
让我们创建一些数据:
CREATE (n1:Node1)
CREATE (n2:Node2)
CREATE (target1:Target)
CREATE (target2:Target)
CREATE (target3:Target)
CREATE (n1)-[:REL]->(target1)
CREATE (n1)-[:REL]->(target2)
CREATE (n1)-[:REL]->(target3);
Run Code Online (Sandbox Code Playgroud)
我们现在有这样的数据:
现在,我们希望从"移动"的关系Node1
,以Node2
查询:
MATCH (n1:Node1)-[r:REL]->(target)
MATCH (n2:Node2)
CREATE (n2)-[:REL]->(target)
DELETE r
Run Code Online (Sandbox Code Playgroud)
结果是:
我们基本上做的是: