|| apoc.refactor.cloneNodes - APOC 核心文档 - Neo4j 文档

apoc.refactor.cloneNodes

详情

语法

apoc.refactor.cloneNodes(nodes [, withRelationships, skipProperties ]) :: (input, output, error)

描述

克隆给定的 NODE 值及其标签和属性。可以使用 skipProperties 跳过任何 NODE 属性(注意:这仅跳过 NODE 值上的属性,而不跳过其 RELATIONSHIP 值上的属性)。

输入参数

名称

类型

描述

nodes

LIST<NODE>

要克隆的节点。

withRelationships

BOOLEAN

是否也应克隆连接的关系。默认值为:false

skipProperties

LIST<STRING>

克隆时是否跳过节点属性。默认值为:[]

返回参数

名称

类型

描述

input

INTEGER

原始实体的内部 ID。

output

NODE

复制的实体。

error

STRING

复制过程中发生的任何错误。

使用 Cypher 重构节点

节点标签可以在 Cypher 中动态引用,而无需使用 APOC。

动态创建、匹配和合并标签的 Cypher 语法
CREATE (n1:$(label))
MERGE (n1:$(label))
MATCH (n1:$(label))

动态计算的标签必须求值为 STRINGLIST<STRING>。更多信息请参见 Cypher 手册 → CREATEMERGEMATCH

使用示例

本节中的示例基于以下示例图

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"})

© . This site is unofficial and not affiliated with Neo4j, Inc.