从Neo4j图形数据库中删除属性

11

我需要从我的图中删除一些节点属性。按照cypher指南,我尝试了以下操作:

START n=node(1)
DELETE n.property
RETURN n

我收到了一个错误信息:
Expression `Property` yielded `true`. Don't know how to delete that.

我可以在console.neo4j.org上复制这个问题。您应该如何删除节点的属性?

4个回答

16

你使用的是哪个版本的Neo4j? 自从Neo4j 2.0 (我不确定具体是哪个里程碑版本,但我尝试过M03),属性不再是“删除”而是“移除”:

START n=node(1)
REMOVE n.property
RETURN n

应该与Neo4j 2.x兼容。

文档中也有相关说明。在页面的右侧(可能需要加载一些时间后),您可以选择Neo4j版本的下拉菜单。当您进入DELETE文档并选择2.0.0-M03里程碑时,您会注意到“删除属性”菜单项消失了(指向M03 DELETE文档的链接:http://docs.neo4j.org/chunked/2.0.0-M03/query-delete.html)。

相反,在2.0.0-M03的REMOVE文档中(这里:http://docs.neo4j.org/chunked/2.0.0-M03/query-remove.html)现在列出了“删除属性”部分。


13

只是另一个例子。

对于 Neo4j 3.0,假设有一个带有属性键名和年龄的节点,删除年龄属性也是有效的:

创建此节点:

CREATE (n {name:'Andres', age:25}) return n

删除age属性的键:

MATCH (andres { name: 'Andres' }) REMOVE andres.age RETURN andres

来自Neo4j 3.0文档 https://neo4j.com/docs/developer-manual/current/cypher/#query-remove


0

目标是:

从我的图形中删除一些节点属性

如果您的节点类型为“Thing”,并且您想要删除名为“size”的属性,则可以使用以下方法从所有节点中删除该属性:

MATCH (t:Thing)
REMOVE t.size

0
当您想要从节点之间的多个关系中移除关系属性时。
MATCH (a:Application {name:'A'})-[r:REQUEST_TO]-(d:Application {name:'B'})
WHERE ID(r) = 684
REMOVE r.property

1
请添加一些解释来提高理解并为 OP 提供更多信息。 - Fabio Veronese

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接