Создать несколько соединений в одном запросе - PullRequest
0 голосов
/ 22 октября 2019

Как подключить узел к нескольким узлам другого типа? Узлы для подключения находятся в списке в качестве параметра, часть узлов не существует в БД. как соединить только существующие, без дублирования всех существующих соединений?

OPTIONAL MATCH (ja : Course{name: 'Math'}), (jm : Student {name: 'James'}) , (bl : Student {name: 'Bill'})
MERGE (ja)-[r1:learn {nickname: 'ALL'}]->(jm)
MERGE (ja)-[r2:learn {nickname: 'ALL'}]->(bl)
RETURN ja, jm

В приведенном выше коде Студент Джеймс существует, и Билла не существует, вся операция завершается неудачно, и связь между Курсом (Математика) и Студентом(Джеймс) не сотворен!

1 Ответ

1 голос
/ 22 октября 2019

Вы можете выполнить МАТЧ по значениям в списке, и если в списке есть элементы, для которых нет узла, это нормально, если хотя бы один из них работает:

MATCH (ja : Course{name: 'Math'}), (student:Student)
WHERE student.name IN ['James', 'Bill']
MERGE (ja)-[:learn {nickname:'ALL'}]->(student)
RETURN ja, student
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...