Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改neo4j中的节点标签_Neo4j_Cypher - Fatal编程技术网

更改neo4j中的节点标签

更改neo4j中的节点标签,neo4j,cypher,Neo4j,Cypher,我用错误的标签创建了一个节点。 有没有办法在不重新创建的情况下更改节点标签或关系类型? 我试过类似的东西 匹配n,其中Id(n)=14组n.标签='Person' 但这是错误的 MATCH (n:OLD_LABEL {id:14}) REMOVE n:OLD_LABEL SET n:NEW_LABEL 我猜这个问题可以解释 可以更改与标签关联的节点,但不能更改关系的类型。从概念上讲,如果你把你的鸡从一个鸡笼里拿出来放到另一个鸡笼里,你并没有改变鸡的物质。但是当你把鸡从烤箱里拿出来放进嘴里的时候

我用错误的标签创建了一个节点。
有没有办法在不重新创建的情况下更改节点标签或关系类型? 我试过类似的东西

匹配n,其中Id(n)=14组n.标签='Person'

但这是错误的

MATCH (n:OLD_LABEL {id:14})
REMOVE n:OLD_LABEL
SET n:NEW_LABEL

我猜这个问题可以解释

可以更改与标签关联的节点,但不能更改关系的类型。从概念上讲,如果你把你的鸡从一个鸡笼里拿出来放到另一个鸡笼里,你并没有改变鸡的物质。但是当你把鸡从烤箱里拿出来放进嘴里的时候,它已经不再是鸡了(除非模棱两可)。你可以决定叫你的猫胡子而不是查理,但是如果你决定要养一条巨蟒而不是猫,给猫起个新名字是没有帮助的。类似地,节点可以是不同标签的成员并保持相同的节点,但关系的类型是构成的。所以:你可以随意添加和删除标签,但是如果你想要一种不同的关系类型,那么你真正想要的是一种不同的关系。这也是为什么一个关系只有一种类型,而一个节点可以有许多标签

标签是任意的节点集或节点包。已经给出了更换行李的语法,但为了完整性:

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)

这适用于同时更改多个节点上的标签:

MATCH (n:OLD_LABEL)
WHERE ID(n) IN [7, 8]
REMOVE n:OLD_LABEL
SET n:NEW_LABEL
试试这个:

Match (n:person{name:'John Jjones'}) Set n.name = 'John Jones'

我不明白为什么要删除关系。在我的例子中,它与id有点不同:
MATCH(n:Node),其中id(n)=14删除n:Node集n:Person
{id:14}
不正确,使用
id(n)=14
。(neo4j 3)如果有一个用于鸡/猫/蟒蛇的例子的类比,我不会遵循它。所有这些东西都是名词,也许你想用动词来表示关系或其他什么?“如果你把尾巴叫做腿,那么狗有多少条腿?”-阿贝·林肯这与问题有什么关系?@Dominique It试图通过使用带有打字错误的名称来查找节点。不努力解释自己……)