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中找到从根到最大叶的树深度_Neo4j_Cypher - Fatal编程技术网

如何在neo4j中找到从根到最大叶的树深度

如何在neo4j中找到从根到最大叶的树深度,neo4j,cypher,Neo4j,Cypher,我想找到树的深度 我已经找到了这个解决方案,但我不知道它是否适用于所有情况: MATCH p=(parent)-[:RELATES*]->(child) WHERE id(parent) = 30 RETURN p ORDER BY length(p) DESC limit 1 这给了我最长的路,但是 第一:我不知道它是否总是有效的。 其次:我希望输出是深度的数字,而不是列表本身。此查询应该可以: MATCH p=(parent)-[:RELATES*]->(child) WHER

我想找到树的深度

我已经找到了这个解决方案,但我不知道它是否适用于所有情况:

MATCH p=(parent)-[:RELATES*]->(child)
WHERE id(parent) = 30
RETURN p
ORDER BY length(p) DESC
limit 1
这给了我最长的路,但是 第一:我不知道它是否总是有效的。
其次:我希望输出是深度的数字,而不是列表本身。

此查询应该可以:

MATCH p=(parent)-[:RELATES*]->(child)
WHERE ID(parent) = 30 AND NOT (child)-[:RELATES]>()
RETURN LENGTH(p) AS maxLth
ORDER BY maxLth DESC
LIMIT 1

虽然不是严格必要的,但它只考虑
子对象
是叶子的路径。

正如@cybersam所提到的,并进行了一些调整:

MATCH p=(parent)-[:RELATES*]->(child)
WHERE ID(parent) = 30 AND NOT (child)-[:RELATES]>()
RETURN LENGTH(p) + 1 AS maxLth
ORDER BY maxLth DESC
LIMIT 1

在标准树理论术语中,树的“深度”是由边的数量决定的,而不是顶点的数量。从技术上讲,这实际上是计算“深度”加1。