Neo4J:如何将节点A的关系复制到节点B?

问题描述 投票:0回答:1

我使用最新的 Neo4j。 我想将所有关系从节点 id=1 复制到节点 id=2:

MATCH (n)-[r]->(m)
WHERE id(n) = 1
WITH r, m 
MATCH (synonym) 
WHERE id(synonym) = 2 
CREATE (synonym)-[???]->(m)

如何获取要放入标记中的关系 (r) 的名称???

感谢您的帮助!

neo4j cypher
1个回答
0
投票

要获取在 CREATE 子句中使用的关系 r 的名称,您可以使用 Cypher 中的 type() 函数动态提取关系类型。以下是您可以修改查询以实现此目的的方法:

MATCH (n)-[r]->(m)
WHERE id(n) = 1
WITH type(r) AS relType, m 
MATCH (synonym) 
WHERE id(synonym) = 2 
CREATE (synonym)-[rel:relType]->(m)
RETURN synonym, m

在此修改后的查询中:

type(r) 提取关系 r 的类型。

使用 type(r) AS relType,m 将关系类型存储在变量 relType 中。

CREATE (synonym)-[rel:relType]->(m) 使用提取的 synonym 和 m 之间的关系类型 relType 创建新关系。

© www.soinside.com 2019 - 2024. All rights reserved.