Neo4j Cypher:在节点属性数组中查找值计数

Neo4j Cypher:在节点属性数组中查找值计数,neo4j,cypher,Neo4j,Cypher,我试图在关系的属性数组中查找所有值及其出现次数 我有三个节点,每个节点都有一个关系属性,它是一个字符串数组 1-[“444”]、2-[“222”、“111”]和3-[“444”] 我尝试的是: MATCH (:Person { field: "B" })-[r:ALIKE]->(person) RETURN r.at, COUNT(r.at) 当前结果: r.at COUNT(r.at) ["222", "111"] 1 ["444"] 2 我所

我试图在关系的属性数组中查找所有值及其出现次数

我有三个节点,每个节点都有一个关系属性,它是一个字符串数组

1-[“444”]、2-[“222”、“111”]和3-[“444”]

我尝试的是:

MATCH (:Person { field: "B" })-[r:ALIKE]->(person)
RETURN r.at, COUNT(r.at)
当前结果:

r.at            COUNT(r.at)
["222", "111"]  1
["444"]         2
我所期望的是:

r.at            COUNT(r.at)
["222"]         1
["444"]         2
["111"]         1

如果我得到的是值,而不是数组,那就更好了

如果还有一个关系也有“111”和“222”,它应该是这样的:

r.at            COUNT(r.at)
"222"           2
"444"           2
"111"           2
我应该如何更改当前查询?
任何帮助都将不胜感激。

让我们重新创建测试数据集:

CREATE
  (:Person {id: 1, at: ['444']}),
  (:Person {id: 2, at: ['222', '111']}),
  (:Person {id: 3, at: ['444']})
要计算单个字符串,请列出每个字符串并计算其元素的Person节点(
p
)的数量:

MATCH (p:Person)
UNWIND p.at AS at
RETURN at, count(p)
结果是:

╒═════╤══════════╕
│"at" │"count(p)"│
╞═════╪══════════╡
│"111"│1         │
├─────┼──────────┤
│"444"│2         │
├─────┼──────────┤
│"222"│1         │
└─────┴──────────┘

让我们重新创建测试数据集:

CREATE
  (:Person {id: 1, at: ['444']}),
  (:Person {id: 2, at: ['222', '111']}),
  (:Person {id: 3, at: ['444']})
要计算单个字符串,请列出每个字符串并计算其元素的Person节点(
p
)的数量:

MATCH (p:Person)
UNWIND p.at AS at
RETURN at, count(p)
结果是:

╒═════╤══════════╕
│"at" │"count(p)"│
╞═════╪══════════╡
│"111"│1         │
├─────┼──────────┤
│"444"│2         │
├─────┼──────────┤
│"222"│1         │
└─────┴──────────┘

在我的情况下,r是关系,但我有了这个想法。非常感谢。在我的情况下,r是关系,但我明白了。谢谢。