2015-02-19 3 views
12

Я только что начал работу на Neo & попытался найти предыдущие вопросы по этой теме. Мне нужна помощь, чтобы переименовать один из ключей свойства.Neo4J: Переименование ключей свойств

Я создал следующий узел:

CREATE (Commerce:Category {title:' Commerce', Property:'Category', Owner:'Magic Pie', Manager:'Simple Simon'}) 

Теперь нужно переименовать название для имени. Есть ли способ сделать это? Я не хочу удалять узел, поскольку есть 100 узлов с свойством «title».

ответ

17

Да, вы хотите SET a new property name со значением старинного имущества title. А затем REMOVE старое свойство title. Что-то вроде этого ...

MATCH (c:Category) 
WHERE c.name IS NULL 
SET c.name = c.title 
REMOVE c.title 

Если у вас есть много узлов, то целесообразно выполнить операцию в небольших партиях. Ниже приведен пример ограничения операции до 10k за раз.

MATCH (c:Category) 
WHERE c.name IS NULL 
WITH c 
LIMIT 10000 
SET c.name = c.title 
REMOVE c.title 
+0

Это работает спасибо! – kkulkarn

+0

Увлекательный факт, но когда вы передаете запрос Neo4j, он загружает все в память до выполнения операции. Вот почему браузер Neo4j медленно тает, когда вы запускаете запросы монстров. Существует «программная оболочка cypher», вы можете получить эти средства защиты, но, как упоминалось выше, это связано с отсутствием пакетной обработки. – agm1984

Смежные вопросы