首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Neo4j -根据节点属性的聚合计算和设置节点属性

Neo4j -根据节点属性的聚合计算和设置节点属性
EN

Stack Overflow用户
提问于 2019-08-28 06:15:19
回答 1查看 139关注 0票数 0

我的问题与这个问题略有不同:Neo4j - calculate & set node property based on relation property。我需要做的是通过计算具有相同“社区”(这是另一个节点属性)的节点的数量来设置节点属性社区大小"CommSize“。我尝试过以下代码,但它为每个"CommSize“设置了'1‘,并且我知道我的社区有成百上千的节点:

代码语言:javascript
复制
MATCH (i)
WITH i, i.community as comm, count(i) as CommCount
SET i.CommSize = CommCount;

如何使用每个社区中的节点计数来设置社区大小属性?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-08-28 06:42:10

当您聚合时,非聚合变量将成为分组键。因此,在您的示例中,每行i有一个节点,以及该单个i节点的计数以及该单个节点的社区值。

要在所有节点上进行聚合,您需要消除或聚合i,以便它在聚合时不会保留为分组键。

您可以尝试如下所示:

代码语言:javascript
复制
MATCH (i)
WITH i.community as comm, count(i) as CommCount, collect(i) as nodes
FOREACH (i IN nodes |
 SET i.CommSize = CommCount);

如果您有许多节点要处理(可能大于50k ),那么您可能需要考虑批处理您的更新,例如使用APOC过程中的apoc.periodic.iterate()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57682879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档