Neo4j 如何用Cypher按顺序提取完整树
我在DB中有不同的树结构 他们都有:Neo4j 如何用Cypher按顺序提取完整树,neo4j,tree,cypher,Neo4j,Tree,Cypher,我在DB中有不同的树结构 他们都有: 一个节点(:模块) 某些节点(:类别) 由关系链接[:后跟] 这是其中之一 O O => (:MODULE) | 0 => (:CATEGORY) 0 | => [:FOLLOWED_BY] | 0 | \
- 一个节点(:模块)
- 某些节点(:类别)
- 由关系链接[:后跟]
O O => (:MODULE)
| 0 => (:CATEGORY)
0 | => [:FOLLOWED_BY]
|
0
| \
0 0
| /
0
/ | \
0 0 0
我需要恢复前面的数据,如下所示:
[ [nodeA], [nodeB], [nodeC], [nodeD, nodeE], [nodeF], etc ...]
我试图用cypher或我的背部(nodeJs)对数据进行排序,但每次都失败了
//我试图用电脑的电源线吊死自己,但还是失败了
有没有人做过这件事,或者有什么想法?如果有,有些人应该会有所帮助
我建议使用,因为它使用NODE_全局唯一性,所以节点只能访问一次,使用从起始节点开始的最短路径。然后可以根据路径的长度对节点进行分组,然后收集每个节点
这可能是一个很好的开始查询:
MATCH (m:Module)
CALL apoc.path.spanningTree(m, {relationshipFilter:'FOLLOWED_BY', labelFilter:'>CATEGORY'}) YIELD path
WITH m, last(nodes(path)) as node, length(path) as depth
WITH m, depth, collect(node) as nodesAtDepth
ORDER BY depth ASC
RETURN collect(nodesAtDepth) as nodes
谢谢你,拉康。我相信APOC是非常有用的,可能是必不可少的,但对于初学者来说也是非常复杂的。你有没有一个博客建议我使用ExpressJs,或者有什么建议让我以良好的顺序开始?你是在寻求纯密码解决方案吗?请记住,要使用APOC,只需将jar放到
plugins
目录中,然后重新启动Neo4j。上面的单个调用
行是使用APOC查询的唯一部分,其他所有内容都是Cypher,因此如果您已经习惯了Cypher,那么使用它应该一点也不复杂。我包含的链接应该可以让你找到APOC文档中的相关点。您还可以在APOC文档中搜索“扩展”。