[英]How do I rename relationships in Neo4j?
我只有在导入大量节点后才意识到我已经创建了名为START
的关系,这是一个保留关键字。 通过 Cypher 控制台查询数据库因此总是抱怨保留关键字:
SyntaxException:保留关键字“start n=node(0) match n<-[:START]-r return count(r)”
想到的唯一解决方法是使用不同的名称创建新的复制关系,然后删除旧的。
有没有一种简单的方法可以重命名所有这些关系或某种方法来转义 Cypher 中的保留关键字?
要进行相当于重命名的操作,您可以创建一个新的并重命名,如下所示:
match (n1)-[old:`Start`]->(n2)
create (n1)-[new:StartDate]->(n2)
delete old
nb使用“Start”周围的反引号来逃避保留的关键字
match (n1)-[old:`Start`]->(n2)
create (n1)-[new:StartDate {propName:old.propName, ...}]->(n2)
delete old
您可以使用apoc插件重命名标签和关系。 您还可以使用此对 select 关系的子集进行重命名。 例如,下面的查询将仅重命名 Jim 和 Alistair 之间的关系。
MATCH (:Engineer {name: "Jim"})-[rel]->(:Engineer {name: "Alistair"})
WITH collect(rel) AS rels
CALL apoc.refactor.rename.type("COLLEAGUES", "FROLLEAGUES", rels)
YIELD committedOperations
RETURN committedOperations
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.