从 neo4、apoc、Cypher 访问地图值

Accessing map values from neo4, apoc, Cypher

我对 Neo4j、Cypher 和一般编程还是比较陌生。

有没有办法访问下面发布的输出,即访问每个 "item“ (which has to be the pair), and also access the "item" 值的 "count" 值?我需要一对频率的数量,即特定的相邻节点不仅作为信息出现,而且作为值出现,我可以进一步使用这些值来调整我的图表。

我的最后几行代码(在前面几行中我只是按顺序排列节点):

...

WITH apoc.coll.pairs(a) as pairsOfa

WITH apoc.coll.frequencies(pairsOfa) AS giveBackFrequencyOfPairsOfa

UNWIND giveBackFrequencyOfPairsOfa AS x 

WITH DISTINCT x

RETURN x

我需要使用的 Neo4j 浏览器的输出:

"x"            


│{"count":1,"item":[{"aName“:"Rob","time":1},{"aName":"Edwin“,"time“:2}]},{„count“:4,“item":[{"aName":"Edwin","time":2},{"aName“:"Celesta","time":3}]} 

...

根据您的代码,您的结果应该包含多个 x 记录(而不是单个记录,正如您问题中提供的 "output" 所暗示的那样)。这是我期望的示例:

╒══════════════════════════════════════════════════════════════════════╕
│"x"                                                                   │
╞══════════════════════════════════════════════════════════════════════╡
│{"count":1,"item":[{"aName":"Rob","time":1},{"aName":"Edwin","time":2}│
│]}                                                                    │
├──────────────────────────────────────────────────────────────────────┤
│{"count":1,"item":[{"aName":"Edwin","time":2},{"aName":"Celesta","time│
│":3}]}                                                                │
└──────────────────────────────────────────────────────────────────────┘ 

如果这是真的,那么您可以直接通过 x.countx.item 访问每个 xcountitem 属性。要获取项目中的每个值,您可以使用 x.item[0]x.item[1].

旁白:您可能想使用 apoc.coll.pairsMin 而不是 apoc.coll.pairs,以避免生成虚假的 "pair"(其第二个元素是 null) 当要配对的值的数量是奇数时。另外,您可能不需要 DISTINCT 步骤。