Ну, вы можете создать новые отношения следующим образом:
MATCH (m)-[old:OLD_RELATIONSHIP]->(n)
CREATE (m)-[new:NEW_RELATIONSHIP]->(n)
DELETE old
RETURN m, new, n
Для вашего примера:
MATCH (m)-[old:INVIA_DATI]->(n)
WHERE ID(m) = 97 AND ID(n) = 115
CREATE (m)-[new:INVIA2]->(n)
DELETE old
RETURN m, new, n
Объяснение:
MATCH (m)-[old:INVIA_DATI]->(n)
WHERE ID(m) = 97 AND ID(n) = 115
Эти две строки соответствуют вашим узлам с идентификаторами 97 и 115 соответственно, где (и только там) между ними существует отношение INVIA_DATI
. m
привязан к узлу с идентификатором узла 97, n
привязан к узлу с идентификатором 115, а old
связан с отношением. Вы можете использовать любые значения вместо n, m и old.
CREATE (m)-[new:INVIA2]->(n)
Эта строка создает новую связь между связанными узлами m
и n
с типом INVIA2
, здесь вы можете дополнительно установить свойства. Если вы хотите предотвратить создание дубликатов, вы можете использовать MERGE
вместо create.
DELETE old
Это удаляет старые отношения.
RETURN m, new, n
Верните связанные значения. Вам не обязательно этого делать, если вы этого не хотите, но в консоли удобно посмотреть, что только что произошло.
И если вам нужно установить свойство, которое вы можете сделать:
CREATE (m)-[new:INVIA2{propname:old.propname}]->(n)
Это установит свойство отношения propname
со значением из исходного свойства propname, таким образом вы можете установить столько свойств, сколько захотите.
18.09.2014