如何解决在没有克隆过程的情况下查询在 neo4j 中复制具有关系的节点
我想复制一个节点及其所有属性以及与其他节点的关系。我使用的是 Neo4j 版本 3.4.7,所以我不能使用克隆程序。我的节点可能有不同类型的关系,我想全部复制它们。我想使用这个查询
match (map:student {name:'test'}) create (copy:student) set copy=map with copy,map match (map)-[r1]->(n) with collect(r1) as rels,map,copy,n foreach( rel in rels | create (copy)-[r2:type(rel)]->(n) set r2+=rel) return copy,n
但是我在 foreach 中使用 type(rel) 得到无效的语法错误。有没有办法在不知道关系类型的情况下做到这一点?
解决方法
最简单的方法是install the APOC library,并调用过程apoc.refactor.cloneNodesWithRelationships
,如文档here。
在您的情况下,您的查询将变为:
MATCH (map:student {name:'test'})
CALL apoc.refactor.cloneNodesWithRelationships([map])
注意:节点标签通常以大写字母开头(Student
在 Neo4j 数据集中比 student
更常见)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。