neo4j - Neo4j 与节点列表的计数和顺序关系
问题描述
我有一张人和物品的图表。关系是一对多的(a:Person)-[:has]->(b:Item)
。对于输入的项目列表,我试图获取拥有该项目的人员列表,按列表中拥有最多项目的人排序。
在上图中,我希望输出如下:
[{"Person 1", count: 3},{"Person 2", count: 2},{"Person 3", count: 1}]
我尝试了以下几种变体:
match(a:Person)
match(b:Item) where b.label in ["Item 1", "Item 2", "Item 3"]
return a,count( (a)-[:has]->(b))
和
match(n:Item) return n, size((n)-->()) as count
计数是正确的,但是当我尝试将项目缩小到列表时,计数是错误的。
解决方案
也许是这样的:
MATCH (a:Person)-[:has]->(b:Item)
RETURN a, count(b) ORDER by count(b) DESC
推荐阅读
- sql - Laravel 两张表的组合查询
- git - 找不到钥匙串来存储“
" - .net-core - .net Core 3.1 WebApi SSL 连接失败,但 curl 到相同的服务工作
- c# - C# OracleDataAdapater 填充命令抛出“索引超出数组边界”
- javascript - 如何使用 cy.clock() 获取当前日期
- python - 关闭 pygobject 中的所有现有窗口
- javascript - 自定义 Amazon 的 Crowd HTML 元素
- chart.js - 在 Chart.js 中使用一系列纪元时间戳按月分组
- javascript - ReferenceError: document is not defined exited with code=1 in 0.107 seconds
- redux - 在 Nextjs 中使用 Redux 的正确方法?