使用集合删除 Neo4J 节点标签?
Remove Neo4J node labels using a collection?
是否可以使用集合从节点中删除标签?像下面这样的东西不起作用,我认为是因为它试图删除 "remove_labels" 标签而不是将其用作要删除的标签集合。
假设所有带有 "label_3" 的节点也有标签 "label_1" 和 "label_2".
WITH ["label_1", "label_2"] as keep_labels
MATCH (n:label_3 {id: 5})
WITH filter(label IN labels(n) WHERE label NOT(IN keep_labels)) AS remove_labels
MERGE (n:label_3 {id: 5})
REMOVE n:remove_labels
RETURN n
--- 编辑 ---
修复了无效的 'cg' 引用,这是一个复制粘贴错误。还添加了一个明确的 keep_labels 集合,尽管在我的查询中这将是一个参数。
目前不支持在 Cypher 中动态指定标签。您必须在客户端代码中处理此问题并构建 Cypher 查询字符串,明确指定标签。
是否可以使用集合从节点中删除标签?像下面这样的东西不起作用,我认为是因为它试图删除 "remove_labels" 标签而不是将其用作要删除的标签集合。
假设所有带有 "label_3" 的节点也有标签 "label_1" 和 "label_2".
WITH ["label_1", "label_2"] as keep_labels
MATCH (n:label_3 {id: 5})
WITH filter(label IN labels(n) WHERE label NOT(IN keep_labels)) AS remove_labels
MERGE (n:label_3 {id: 5})
REMOVE n:remove_labels
RETURN n
--- 编辑 ---
修复了无效的 'cg' 引用,这是一个复制粘贴错误。还添加了一个明确的 keep_labels 集合,尽管在我的查询中这将是一个参数。
目前不支持在 Cypher 中动态指定标签。您必须在客户端代码中处理此问题并构建 Cypher 查询字符串,明确指定标签。