Измените метку node в neo4j

Я создал node с неправильной меткой.
Есть ли способ изменить node метку или тип отношения без повторного создания? Я пробовал что-то вроде

MATCH n WHERE Id (n) = 14 SET n.Labels = 'Person'

но это ошибка...

Ответы

Ответ 1

Вы можете изменить узлы, связанные с меткой, но вы не можете изменить тип отношений. Концептуально, если вы вытащите цыпленка из одного курятника и поместите его в другое, вы не изменили вещество курица. Но к тому времени, как вы вытащите курицу из духовки и положите ее в рот, это уже не курица (кроме двусмысленно). Вы можете решить назвать своих кошачьих усов вместо Чарли, но если вы решите, что хотите использовать анаконду для домашнего животного вместо кошки, это не поможет дать коту новое имя. Аналогично, node может быть членом разных меток и оставаться тем же node, но тип отношения является конститутивным. Итак: вы можете добавлять и удалять ярлыки по своему усмотрению, но если вам нужен другой тип отношения, то то, что вы хотите, - это действительно разные отношения. Именно поэтому отношение имеет только один тип, но node может иметь много ярлыков.

Этикетки представляют собой произвольные наборы или пакеты узлов. Грамматика для смены мешков уже дана, но для полноты:

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

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

Угадайте, что этот запрос объясняет сам.