Neo4j如何删除复制的边?

Neo4j如何删除复制的边?,neo4j,neo4jclient,Neo4j,Neo4jclient,我正在学习Cypher/Neo4j,使用C# 我在边缘创建了3次 client.Cypher .Match("(user1:Person)", "(user2:Person)") .Where((Person user1) => user1.name == "Tony") .AndWhere((Person user2) => user2.name == "Maria Esther")

我正在学习Cypher/Neo4j,使用C#
我在边缘创建了3次

  client.Cypher
               .Match("(user1:Person)", "(user2:Person)")
               .Where((Person user1) => user1.name == "Tony")
               .AndWhere((Person user2) => user2.name == "Maria Esther")
               //.Create("(user1)-[:PAI]->(user2)")
               .Create("(user2)-[:FILHO {DataDeNascimento: '2006'}]->(user1)")
               .ExecuteWithoutResults();
如何删除另外两条边:FILHO(复制边)


此查询将删除重复的
:FILHO
节点之间的
人关系:

MATCH (p1:Person)-[r:FILHO]->(p2:Person)
WITH p1, p2, COLLECT(r) as rels
FOREACH(r IN tail(rels) | DELETE r)
首先,它匹配所有
FILHO
关系和
Person
节点。 然后将每对
Person
节点的关系聚合到
rels
集合中。
然后遍历每个
rels
集合的尾部(所有关系,但第一个除外)并删除它们。

此查询将删除重复的
:FILHO
节点之间的关系:

MATCH (p1:Person)-[r:FILHO]->(p2:Person)
WITH p1, p2, COLLECT(r) as rels
FOREACH(r IN tail(rels) | DELETE r)
首先,它匹配所有
FILHO
关系和
Person
节点。 然后将每对
Person
节点的关系聚合到
rels
集合中。
然后迭代每个代码的尾部> Reals集合(所有关系,但第一个)并删除它们。

最好考虑如何避免创建双边缘。考虑使用合并而不是创建。

最好考虑如何避免创建Duffic边。考虑使用合并而不是创建.< /P>