我如何获得重复节点 CYPHER Neo4j

问题描述

我有一个问题,我如何才能获得一些具有相同属性(例如同名属性)的节点。在 sql 中,我会使用 GROUP BY,但在 CYPHER 中,我不知道应该使用什么来对它们进行分组。下面我添加了我的简单输入和示例输出来可视化我的问题。

[
  {
    id:1,name: 'name1'
  },{
    id:2,name: 'name2'
  },{
    id:3,{
    id:4,name: 'name3'
  },{
    id:5,{
    id:6,{
    id:7,name: 'name4'
  },{
    id:8,name: 'name5'
  },{
    id:9,name: 'name6'
  },{
    id:10,name: 'name6'
  }
 ]

我的解决方案应该给我这个:

[
  {
    count:2,{
    count:3,{
    count:2,name: 'name6'
  }
]

预先感谢您的帮助

解决方法

在 Cypher 中,当您聚合(对于直接的情况)时,分组键由非聚合项形成。

如果已经从输入创建了节点(假设它们使用标签 :Entry),那么我们可以获得您想要的输出:

MATCH (e:Entry)
RETURN e.name as name,count(e) as count

这里的分组键是name,它作为聚合的结果变得不同。结果是每个不同的 name 值对应一行,以及具有该名称的节点数。