Направление отношений не может быть сохранено после использования вызова apoc.refactor.cloneNodesWithRelationships - PullRequest
0 голосов
/ 02 октября 2018

Я использую neo4j Community Edition 3.0.6 и Apoc 3.0.8.6.У меня возникли проблемы, когда я пытался скопировать узел, который уже имеет несколько отношений.Затем, когда я использую вызов apoc.refactor.cloneNodesWithRelationships ([node1, node2,…]), узлы и их отношения копируются.Но направление отношений неверно.Прикрепленное изображение ниже.Как вы можете видеть на изображении, направление отношений между AB неверно.Похоже, что все созданные там отношения рассматриваются как исходящие.Это ошибка на apoc 3.0.8.6 или есть какое-то решение по этому вопросу?

Спасибо enter image description here

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Обновление об этой проблеме.Извините, но только что узнал, что это моя ошибкаЯ использовал такой запрос.

MATCH (p:A)-[r1:A_has_B]->(l:B) 
WHERE p.id IN {0} WITH COLLECT(l) as oldBList 
CALL apoc.refactor.cloneNodesWithRelationships(oldBList) YIELD output 
CALL apoc.create.uuid() YIELD uuid SET output.id = uuid 
WITH COLLECT(output.id) as copiedIds
MATCH (l2:B)-[r1]-() 
WHERE l2.id IN copiedIdsAND r1.id IS NOT NULL 
CALL apoc.create.uuid() YIELD uuid 
SET r1.id = uuid 
WITH copiedIds as copiedIds
UNWIND(copiedIds) as result
RETURN result

По-видимому, у меня есть случай, когда нет никаких отношений с B, имеющих r.id, поэтому copiedIds как-то не возвращаются в результат запроса.Похоже, что это транзакционная проблема.

Спасибо за помощь

0 голосов
/ 03 октября 2018

Я вижу, что вы создали APOC выпуск # 936 для этого, который, по-видимому, является дубликатом выпуск # 229 .

Я добавил комментарий к выпуску № 229 с моим анализом ошибки APOC.

...