neo4j множественные совпадения, приводящие к слиянию - PullRequest
0 голосов
/ 11 марта 2020

У меня есть типы узлов a, b, c, где у каждого типа может быть 1 или более каждого типа (включая его собственный тип). В одной транзакции я сливаю все узлы из файла, затем в следующей транзакции я сопоставляю узлы и пытаюсь создать их отношения.

enter image description here

Следующий оператор шифрования успешно выполняется без сбоев, но также не создает ожидаемые отношения:

MATCH(a:TypeA) WHERE a.name = {nameA}
MATCH(b:TypeB) WHERE b.name = {nameB}
MATCH(c:TypeC) WHERE c.name = {nameC}
MATCH(d:TypeA) WHERE d.name = {nameD}
MERGE(a)-[:has_a]->(d)
MERGE(a)-[:has_b]->(b)
MERGE(a)-[:has_c]->(c)

enter image description here

Если я сужу вышеприведенный оператор шифрования к первому совпадению, любому другому совпадению и объединению одного отношения, оно работает, как и ожидалось, например:

MATCH(a:TypeA) WHERE a.name = {nameA}
MATCH(b:TypeB) WHERE b.name = {nameB}
MERGE(a)-[:has_b]->(b)

enter image description here

Существует ли какой-либо шифровальный формат или ограничение, о котором я не знаю?

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