Neo4j如何删除复制的边?
我正在学习Cypher/Neo4j,使用C#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")
我在边缘创建了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>