忽略 Cypher 查询中的 属性 或替代方法:如何计算关系序列

Ignoring a property within Cypher Query OR alternative: how count relationship sequences

以下 Cypher 语句为我提供了代码下方的图形输出(见图)。以及图像下方的文本输出。我的问题是文本输出。

我会尽量把问题解释清楚:我对两个节点的相同序列感兴趣,关于特定的 属性(此处:personName)。例如。正如您在图片中(或从 create 语句中)看到的那样,Bob 在 May 之后出现了两次。我想通过 apoc.coll.frequencies(pairsOfActs) AS giveBackFrequencyOfPairs 捕获这个 RETURN giveBackFrequencyOfPairs。但是,'time' 属性 挡住了路。有没有办法忽略时间属性?我一直在尝试对列表进行操作,还尝试删除时间 属性 (然后我的序列就消失了),但没有任何效果。有什么建议么?或者这种方法完全错误,或者甚至有一个预定义的函数来计算我缺少的特定节点序列?

CREATE
    (a: Action {personName: 'Tom', time: 1}), 
    (b: Action {personName: 'May', time: 2}),  
    (c: Action {personName: 'Bob', time: 3}),
    (d: Action {personName: 'Alex', time: 4}), 
    (e: Action {personName: 'Zac', time: 5}),
    (f: Action {personName: 'Jill', time: 6}),
    (g: Action {personName: 'May', time: 7}),  
    (h: Action {personName: 'Bob', time: 8})


MATCH (act: Action) 
WITH act  ORDER BY act.time ASC 
WITH COLLECT(act) AS acts 
FOREACH (n IN RANGE(0, size(acts)-2) |
FOREACH (curr IN [acts[n]] | 
FOREACH (next IN [acts[n+1]] | 
MERGE (curr)-[:NEXT]-> (next)))) 
WITH apoc.coll.pairsMin(acts) as pairsOfActs
UNWIND pairsOfActs as unwoundPairsOfActs
WITH apoc.coll.frequencies(unwoundPairsOfActs) AS    giveBackFrequencyOfPairs
RETURN giveBackFrequencyOfPairs

对于您陈述的问题,无需创建 NEXT 关系,因此本答案不会创建它们。如果出于某种原因确实需要,您可以修改此答案以将其添加回去。

此查询应 return 每对名称(出现在您的 time 序列中)的频率:

MATCH (act: Action) 
WITH act ORDER BY act.time ASC 
RETURN apoc.coll.frequencies(apoc.coll.pairsMin(COLLECT(act.personName))) AS giveBackFrequencyOfPairs

带有样本数据的输出将是:

╒══════════════════════════════════════════════════════════════════════╕
│"giveBackFrequencyOfPairs"                                            │
╞══════════════════════════════════════════════════════════════════════╡
│[{"count":1,"item":["Tom","May"]},{"count":2,"item":["May","Bob"]},{"c│
│ount":1,"item":["Bob","Alex"]},{"count":1,"item":["Alex","Zac"]},{"cou│
│nt":1,"item":["Zac","Jill"]},{"count":1,"item":["Jill","May"]}]       │
└──────────────────────────────────────────────────────────────────────┘