我需要从图表中删除一些节点属性。按照密码指南,我尝试了以下内容:
START n=node(1)
DELETE n.property
RETURN n
我收到错误消息:
Expression `Property` yielded `true`. Don't know how to delete that.
我可以在console.neo4j.org上复制这个。你应该如何删除节点的属性?
答案 0 :(得分:13)
您使用的是什么版本的Neo4j?自从Neo4j 2.0(我不确定究竟是什么里程碑,用M03尝试过)后,属性不再被“删除”,而是“被删除”:
START n=node(1)
REMOVE n.property
RETURN n
应该适用于Neo4j 2.x。
这也反映在文档中。在页面的右侧(可能在一些加载时间之后),您有一个用于选择Neo4j版本的下拉菜单。当您转到DELETE文档并选择2.0.0-M03里程碑时,您会注意到“删除属性”菜单点消失了(链接到DELETE上的M03文档:http://docs.neo4j.org/chunked/2.0.0-M03/query-delete.html)。
相反,REMOVE上的2.0.0-M03文档(此处:http://docs.neo4j.org/chunked/2.0.0-M03/query-remove.html)现在列出了“删除属性”部分。
答案 1 :(得分:10)
另一个例子。
对于 Neo4j 3.0 ,给定具有属性键,名称和年龄的节点,删除age属性也是有效的:
创建节点:
CREATE (n {name:'Andres', age:25}) return n
删除属性键年龄
MATCH (andres { name: 'Andres' }) REMOVE andres.age RETURN andres
来自Neo4j 3.0文档https://neo4j.com/docs/developer-manual/current/cypher/#query-remove
答案 2 :(得分:0)
要从节点之间的多个关系中删除关系属性时。
MATCH (a:Application {name:'A'})-[r:REQUEST_TO]-(d:Application {name:'B'})
WHERE ID(r) = 684
REMOVE r.property