Neo4j Cypher:在子图中迭代并添加关系

Neo4j Cypher:在子图中迭代并添加关系,neo4j,cypher,Neo4j,Cypher,我有带标签A的节点和带标签B的节点。每个节点A都有一些连接到它们的节点B 我想运行一个密码查询来添加连接到同一个节点a的所有节点B之间的连接 match (a:A)<-[:c1]-(b:B) with collect (b) as bbs foreach(b in bbs | merge (b1)-[:c2]-(b2) ) match(a:a)此任务不需要这些函数 您只需通过以下查询即可完成此操作: MATCH (thisB:B)-[:c1]->(a:A)<-[:c1]-(

我有带标签A的节点和带标签B的节点。每个节点A都有一些连接到它们的节点B

我想运行一个密码查询来添加连接到同一个节点a的所有节点B之间的连接

match (a:A)<-[:c1]-(b:B)
with collect (b) as bbs
foreach(b in bbs | merge (b1)-[:c2]-(b2) ) 

match(a:a)此任务不需要这些函数

您只需通过以下查询即可完成此操作:

MATCH (thisB:B)-[:c1]->(a:A)<-[:c1]-(otherB:B)
MERGE (thisB)-[:c2]-(otherBs)

MATCH(thisB:B)-[:c1]->(a:a)您尚未指出为什么要添加这些额外的关系。但一般情况下,应该仔细考虑是否添加冗余数据(如仅概述现有关系的关系)值得额外的编码、存储和执行成本。请记住,一旦添加了这些新关系,就必须添加代码,以使它们与它们汇总的关系保持同步,反之亦然。只有当您有一个用例证明增加的复杂性和资源使用是合理的时,您才应该做这种事情。