apoc.refactor.cloneNodes过程
语法 |
|
||
描述 |
克隆给定的 |
||
输入参数 |
名称 |
类型 |
描述 |
|
|
要克隆的节点。 |
|
|
|
是否同时克隆连接的关系。默认值为: |
|
|
|
克隆时是否跳过节点属性。默认值为: |
|
返回参数 |
名称 |
类型 |
描述 |
|
|
原始实体的内部 ID。 |
|
|
|
复制后的实体。 |
|
|
|
复制过程中发生的任何错误。 |
|
使用 Cypher 重构节点
无需使用 APOC,即可在 Cypher 中动态引用节点标签。
用于动态创建、匹配和合并标签的 Cypher 语法
CREATE (n1:$(label))
MERGE (n1:$(label))
MATCH (n1:$(label))
动态计算出的标签必须求值为 STRING 或 LIST<STRING>。有关更多信息,请参阅 Cypher 手册 → CREATE、MERGE、MATCH。
用法示例
本节中的示例基于以下示例图
CREATE (mark:Person {name: "Mark", city: "London"})
CREATE (jennifer:Person {name: "Jennifer", city: "St Louis"})
以下示例展示了如何同时使用 APOC 和 Cypher 来创建所有 Person 节点的副本
apoc.refactor.cloneNodes
MATCH (p:Person)
WITH collect(p) AS people
CALL apoc.refactor.cloneNodes(people)
YIELD input
MATCH (p:Person)
RETURN DISTINCT p
使用 Cypher 的动态标签
MATCH (p:Person)
CREATE (n:$(labels(p)))
SET n = properties(p)
WITH *
MATCH (p:Person)
RETURN DISTINCT p
| p |
|---|
(:Person {name: "Mark", city: "London"}) |
(:Person {name: "Jennifer", city: "St Louis"}) |
(:Person {name: "Mark", city: "London"}) |
(:Person {name: "Jennifer", city: "St Louis"}) |