Есть ли способ создать отношение при создании узла при определенном условии? Cypher 3.5 - PullRequest
0 голосов
/ 15 января 2020

Я новичок в Neo4j и графических базах данных.

Я ищу способ создания узла при подключении его к другому узлу, у которого есть поле, соответствующее определенному параметру.

Вот диаграмма, чтобы понять идею: diagram of the situation

Допустим, мой параметр :params {friendNodeId: 2}

В моем запросе Cypher я хотел бы создать свой новый узел с его полем name: "my brand new node" , Затем, если существует узел, имеющий uniqueId = $params.friendNodeId, создайте связь между этим узлом и моим новым узлом.

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

Если вы думаете, что это вообще не имеет смысла, не стесняйтесь выдвигать другое предложение.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 16 января 2020

Из вашего примера в комментариях, если создание узла является обязательным, но создание отношения является необязательным (в зависимости от того, существует ли соответствующий узел), тогда вы можете просто переместить CREATE до вашего MATCH:

CREATE (new:Node {uId: 4})
SET new.name = "name 4" 
WITH new
MATCH (other:Node {uId: $uniqueId})
CREATE (new)-[r:FRIEND]->(other) 
RETURN r
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...