Удаление конкретного свойства вершины
У меня есть вершина с именемCAR
который имеет несколько следующих атрибутов:
CREATE (v:Car{
name: 'Alex',
age: 27,
manufactureDate: 2023
color: Yellow
})
Теперь я хочу удалить свойство цвета из узла. Может кто-то помочь мне с этим
3 ответа
Вы можете использовать предложение REMOVE следующим образом:
SELECT * FROM cypher('graph_name', $$
MATCH (u: Car {name : 'Alex'})
REMOVE u.color
RETURN u
$$) AS (u agtype);
Подробнее читайте здесь в документации
Более того, другой способ — просто установить для свойства значение NULL (свойство не может иметь значение NULL, поэтому свойство удаляется).
SELECT * FROM cypher('graph_name', $$
MATCH (u: Car {name : 'Alex'})
SET u.color = NULL
RETURN u
$$) AS (u agtype);
Чтобы удалить свойство цвета из узла Car, вам необходимо использовать предложение MATCH, чтобы найти узел с указанными свойствами, и предложение REMOVE, чтобы удалить определенное свойство. Запрос будет выглядеть так, как показано ниже
MATCH (v:Car{name:'Alex', age: 27, manufactureDate: 2023})
REMOVE v.color
Вы можете удалить свойство узла, используя другие свойства узла, например, в этом случае вы можете удалить его, используя имя, возраст или дату изготовления.
Вы должны иметь в виду одну вещь: это свойство будет удалено из всех узлов, имеющих заданное условие, например, если возраст: 27 для нескольких узлов, то для всех узлов, возраст которых равен 27, свойство цвета будет удалено.
Итак, используйте это свойство в условии, которое является уникальным или, как мы говорим, является первичным ключом, чтобы данные, которые вы не хотите изменять, оставались прежними.
Использование свойства возраста
Select * FROM cypher('graph',$$ MATCH(u: Car {age: 27}) REMOVE u.color RETURN u $$) AS (u agtype);
Использование свойства имени
Select * FROM cypher('graph',$$ MATCH(u: Car {name: 'Alex'}) REMOVE u.color RETURN u $$) AS (u agtype);
Использование изготовленного имущества
Select * FROM cypher('graph',$$ MATCH(u: Car {manufactureDate: 2023}) REMOVE u.color RETURN u $$) AS (u agtype);