我创建了一个标签错误的节点 有没有办法在不重新创建节点标签或关系类型的情况下更改它? 我尝试过像
这样的东西MATCH n WHERE Id(n)= 14 SET n.Labels =' Person'
但这是错误的......
答案 0 :(得分:26)
MATCH (n:OLD_LABEL {id:14})
REMOVE n:OLD_LABEL
SET n:NEW_LABEL
猜猜这个问题解释了自己。
答案 1 :(得分:18)
您可以更改与标签关联的节点,但无法更改关系类型。从概念上讲,如果你将鸡肉从一个鸡舍中取出并放入另一个鸡舍中,你就不会改变鸡肉的含量。但是当你将鸡肉从烤箱中取出并放入口中时,它就不再是鸡了(除了模棱两可)。您可以决定拨打猫 Whiskers 而不是 Charlie ,但如果您决定要为宠物而不是猫而使用anaconda,则无法帮助给猫一个新名字。类似地,节点可以是不同标签的成员并且保持相同的节点,但是关系的类型是组成型的。所以:您可以随意添加和删除标签,但如果您想要不同的关系类型,那么您想要的实际上是一种不同的关系。这也是关系只有一种类型,但节点可以有多个标签的原因。
标签是任意组或节点袋。已经给出了换袋的语法,但为了完整性:
MATCH (n)
WHERE ID(n) = 14
REMOVE n:Whiskers
SET n:Charlie
MATCH (petless_and_unhappy)-[whiskers:CAT]->(petful_and_unhappy)
DELETE whiskers
CREATE (petless_and_unhappy-[sir_hiss:ANACONDA]->(peftul_and_happy)
答案 2 :(得分:1)
这应该可以同时更改多个节点上的标签:
MATCH (n:OLD_LABEL)
WHERE ID(n) IN [7, 8]
REMOVE n:OLD_LABEL
SET n:NEW_LABEL
答案 3 :(得分:0)
尝试一下:
Match (n:person{name:'John Jjones'}) Set n.name = 'John Jones'