Neo4j Cypher:在节点属性数组中查找值计数
我试图在关系的属性数组中查找所有值及其出现次数 我有三个节点,每个节点都有一个关系属性,它是一个字符串数组 1-[“444”]、2-[“222”、“111”]和3-[“444”] 我尝试的是: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 我所
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是关系,但我明白了。谢谢。