我的用例是:
我必须在结果中返回整个图形,但条件是
如果在同一方向的两个特定节点之间存在多个关系,那么我必须将其合并为1个关系。例如:让我们说有两个节点' m'和' n'并且在这些节点之间有3个关系,比如说r1,r2,r3(在同一个方向上),然后当我在触发密码查询后得到结果时,我应该只得到1个关系' n'和' m'
我需要在它之上执行一些操作,就像我们从合并所有关系得到的结果关系应该包含我想要保留的属性及其值。实际上,我将保留合并的任何一个关系的所有属性,具体取决于作为关系属性之一的时间戳字段。
注意:我在所有关系中都拥有相同的属性(属性的数量和属性的名称在所有关系中都是相同的。值可能会有所不同)
任何帮助将不胜感激。提前致谢。
答案 0 :(得分:0)
你的意思是这样的吗?
删除除第一个
以外的所有内容MATCH (a)-[r]->(b)
WITH a,b,type(r) as type, collect(r) as rels
FOREACH (r in rels[1..] | DELETE r)
按时间戳排序
MATCH (a)-[r]->(b)
WITH a,r,b
ORDER BY r.timestamp DESC
WITH a,b,type(r) as type, collect(r) as rels
FOREACH (r in rels[1..] | DELETE r)
如果您想在查询结果上进行所有这些操作,请使用您选择的编程语言进行操作。