Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 如何用Cypher按顺序提取完整树_Neo4j_Tree_Cypher - Fatal编程技术网

Neo4j 如何用Cypher按顺序提取完整树

Neo4j 如何用Cypher按顺序提取完整树,neo4j,tree,cypher,Neo4j,Tree,Cypher,我在DB中有不同的树结构 他们都有: 一个节点(:模块) 某些节点(:类别) 由关系链接[:后跟] 这是其中之一 O O => (:MODULE) | 0 => (:CATEGORY) 0 | => [:FOLLOWED_BY] | 0 | \

我在DB中有不同的树结构

他们都有:

  • 一个节点(:模块)
  • 某些节点(:类别)
  • 由关系链接[:后跟]
这是其中之一

    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文档中搜索“扩展”。