Ber*_*ert 5 neo4j graph-databases cypher
我正在使用Neo4j 2.1.7和Node.js来构建REST API.数据 - 大约70.000个节点和100.000个关系 - 包含许多小的连接子图.
例如localhost:8000/search?name=Bussum,一个API调用应返回所有命名Bussum的节点及其所属的连接组件.
插图:
![]()
(来自维基百科的图片)
我可以通过这样的查询获得我需要的所有数据:
MATCH (a {name: "Bussum" })-[r*]-(b)
UNWIND rels AS rel
RETURN distinct startNode(rel) AS a, type(rel), endNode(rel) AS b
Run Code Online (Sandbox Code Playgroud)
但是这样的查询将返回所有三元组(a)-[r]-(b)(不按组件/子图分组).当然,我可以在Node.js中重建图形并自己找到子图,但这根本不是最好的解决方案.是否可以将返回的数据分组到子图/组件的数组/集合中?哪个Cypher查询更符合我的用例?或者我应该考虑使用Neo4j Java API吗?
谢谢!伯特
您应该仍然将原始起点作为分组节点。
MATCH (root {name: "Bussum" })-[rels*]-(b)
UNWIND rels AS rel
RETURN root,
collect({start: startNode(rel),
type: type(rel),
end: endNode(rel)}) as component
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3415 次 |
| 最近记录: |