0

我正在尝试使用 apoc.merge.relationship 在两个节点之间创建关系,但它创建了两个相同的关系,我可以通过搜索看到。他们都有相同的方向,一切都是一样的,尽管从查询中很明显这newLink.id是标识符。我希望有人能告诉我我的密码查询有什么问题。

UNWIND [{ 
     color:'#82abd1', direction:'true', id:'q', index:0, linkType:'a', 
     source:'46166.a690c888-e3d5-41ed-8469-79a88cce8388', status:'approved',  
     target:'46163.a690c888-e3d5-41ed-8469-79a88cce8388', type:'Applies for', value:2 
}] AS newLink
    MATCH 
      (fNode:Node {id: newLink.source}),
      (sNode:Node {id: newLink.target})
    CALL apoc.merge.relationship(
      fNode, 
      'Label', 
      {id: newLink.id}, 
      apoc.map.clean(newLink, ['id','type'],[]), 
      sNode, 
      apoc.map.clean(newLink, ['id','type'],[])
    )
    YIELD rel
    RETURN DISTINCT 'true';

我的搜索查询是

MATCH ()-[rel]-() RETURN COUNT(rel)
4

1 回答 1

0

我的查询是为两者(node1)-[rel]-(node2)和 for找到相同的关系(node2)-[rel]-(node1)。所以避免这种情况的一种方法是使用 ID(node1)>ID(node2),它比较 neo4j 给出的节点 id。

于 2021-11-03T06:29:05.253 回答