apoc.create.setLabels

此过程已弃用。若要动态设置节点标签,请改用 Cypher 的 SET 子句。

详细信息

语法

apoc.create.setLabels(nodes, labels) :: (node)

描述

为给定的 NODE 值设置指定的标签。节点中不匹配的标签将会被移除。

输入参数

名称

类型

描述

节点

ANY

要设置标签的节点。

标签

LIST<STRING>

要为给定节点设置的标签。

返回参数

名称

类型

描述

节点

NODE

更新后的节点。

使用 Cypher 设置标签

在 Cypher 中无需使用 APOC 即可动态引用标签。

动态设置标签的 Cypher 语法
SET n:$(label)

动态计算出的标签必须解析为 STRINGLIST<STRING>。有关更多信息,请参阅 Cypher 手册 → 动态设置标签

使用示例

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

CREATE (:Movie {title: 'A Few Good Men', genre: 'Drama'});

我们可以将 'genre' 属性转换为标签,将其从属性中移除,并使用 APOC 和 Cypher 删除其他任何标签。

apoc.create.setLabels
MATCH (n:Movie)
CALL apoc.create.setLabels( n, [ n.genre ] )
YIELD node
REMOVE node.genre
RETURN node;
使用 Cypher 的动态标签
MATCH (n:Movie)
REMOVE n:$(labels(n))
SET n:$(n.genre)
REMOVE n.genre
RETURN n
结果
节点

(:Drama {title: "A Few Good Men"})

如果只想添加新标签而不删除现有标签,请参阅 apoc.create.addLabels