使用调用apoc.refactor.cloneNodesWithRelationships后无法保留关系方向

时间:2018-10-02 11:28:24

标签: neo4j neo4j-apoc

我正在使用neo4j社区版3.0.6和apoc 3.0.8.6。 我在尝试复制已经具有多个关系的节点时遇到了这个问题。 然后,当我使用调用apoc.refactor.cloneNodesWithRelationships([node1,node2,...])时,将复制节点及其关系。 但是关系方向是错误的。 附下图。如您在图像中看到的,A-B之间的关系方向错误。好像在那里创建的所有关系都被视为外向关系。 这是apoc 3.0.8.6的错误还是有关此问题的解决方案?

谢谢 enter image description here

2 个答案:

答案 0 :(得分:1)

有关此问题的更新。抱歉,但是发现这是我的查询错误。 我确实使用过这样的查询。

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的情况,因此copyIds不知何故没有返回到结果查询。使它看起来像是交易问题。

感谢所有帮助

答案 1 :(得分:0)

我看到您为此创建了APOC issue #936,它似乎是issue #229的副本。

我已将a comment添加到第229号问题中,以分析APOC错误。