У меня есть типы узлов a, b, c, где у каждого типа может быть 1 или более каждого типа (включая его собственный тип). В одной транзакции я сливаю все узлы из файла, затем в следующей транзакции я сопоставляю узлы и пытаюсь создать их отношения.
Следующий оператор шифрования успешно выполняется без сбоев, но также не создает ожидаемые отношения:
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)
Если я сужу вышеприведенный оператор шифрования к первому совпадению, любому другому совпадению и объединению одного отношения, оно работает, как и ожидалось, например:
MATCH(a:TypeA) WHERE a.name = {nameA}
MATCH(b:TypeB) WHERE b.name = {nameB}
MERGE(a)-[:has_b]->(b)
Существует ли какой-либо шифровальный формат или ограничение, о котором я не знаю?