Как изменить возвращенное свойство, не затрагивая фактическое свойство в Neo4j? - PullRequest
0 голосов
/ 03 апреля 2020

Есть ли способ изменить возвращаемое свойство, не затрагивая фактическое свойство в Neo4j? Я пытался использовать предложение SET, но он изменяет фактическое свойство в базе данных.

Возьмем в качестве примера этот запрос для https://console.neo4j.org/:

match (n:Crew)
//change n.name = "my_value"
return n

Как получить приведенный ниже вывод без изменения свойства фактического имени?

(0:Crew {name:"my_value"})
(1:Crew {name:"my_value"})
(2:Crew {name:"my_value"})
(3:Crew:Matrix {name:"my_value"})

Ответы [ 2 ]

2 голосов
/ 03 апреля 2020

Вы можете использовать проекцию карты , чтобы вернуть карту всех свойств каждого узла с некоторыми переопределенными свойствами, например:

MATCH (n:Crew)
RETURN n {.*, name: 'my_value'}

Однако это не будет генерировать визуализацию, поскольку возвращенный n не будет узлом (это будет просто карта).

Если вы хотите визуализировать результат, вы должны изучить использование виртуальных узлов и отношения . Вам также следует использовать браузер Neo4j вместо https://console.neo4j.org/, так как последний может неправильно отображать виртуальные узлы и отношения.

0 голосов
/ 03 апреля 2020

Я не знаю, является ли это правильным способом достижения этого, но вот как я это сделал:

match (n:Crew) 
return {name: "my_value"} as n

Другие свойства n могут быть размещены внутри этого пользовательского объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...