如何使用cypher删除neo4j 2.0中具有NULL属性的节点或关系

如何使用cypher删除neo4j 2.0中具有NULL属性的节点或关系,neo4j,cypher,Neo4j,Cypher,我在其中创建了一些节点和关系。但在做这些事情的时候,发生了一些错误。我想删除所有具有“SGS”的节点,ID为2的节点除外 以下是我运行以创建节点和关系的脚本: (如果可能,请建议如何编辑此文件) 我尝试用一些不同的尝试和错误方法删除(以及match、where、IS NULL等),但无法实现相同的效果。请提供帮助。除了要删除的节点外,您的所有节点似乎都有一个名称。 所以你可以试试 match n WHERE NOT (HAS (n.name)) //find all nodes with no

我在其中创建了一些节点和关系。但在做这些事情的时候,发生了一些错误。我想删除所有具有“SGS”的节点,ID为2的节点除外

以下是我运行以创建节点和关系的脚本:

(如果可能,请建议如何编辑此文件)


我尝试用一些不同的尝试和错误方法删除(以及match、where、IS NULL等),但无法实现相同的效果。请提供帮助。

除了要删除的节点外,您的所有节点似乎都有一个名称。 所以你可以试试

match n
WHERE NOT (HAS (n.name)) //find all nodes with no name property
with n
match n-[r]-() //find all nodes connected to that node
delete r,n //delete its relations and then the node itself
(注:未测试)

在上面的create语句中,您使用了(rkn)而不是(rk),也可能使用(answ)而不是其他内容。所以(rkn)-[:READ]->(bk1)只会创建一个没有属性来表示rkn的节点和与rkn的读取关系OneNight@CallCenter. 你只需要验证和修复这些

e、 这些关系都引用了一个名为(rkn)的节点,所以我在create语句中将rk节点重命名为rkn。还请验证您在关系中引用的每个节点实际上都映射到create语句中的节点

注意:密码不再支持HAS,请改用EXISTS

这个对我有用

match (n) WHERE NOT (EXISTS (n.name)) DETACH DELETE n

谢谢Luane,成功了。我3天前才开始研究这项技术,所以不知道“WITH/HAS”等。有没有可能回答如何编辑相同的内容(我在创建时弄错了什么)?我很早就尝试过使用这项技术(因为我知道使用UNIQUE),但得到了(而且还没有得到)相同错误:CREATE UNIQUE不支持此模式。您关于PatternException的问题与关于删除节点的问题不同,因此应单独提问。如果您这样做,可能会有人回答说,
CREATE UNIQUE
要求已绑定模式的某些部分–首先匹配某个内容,然后从该内容创建唯一的rel和节点,即
match(a{name:“a”})CREATE UNIQUE a-[:R]>(b{name:“b”})
。如果您想要唯一的单节点,请使用
MERGE
。您好,因为这是我在SE上的第一个问题,您可能会发现它很混乱。我请求您这次给我裸体。关于您的查询,您在第15行有一个“
”。