как найти глубину дерева в neo4j от корня до максимального листа - PullRequest
0 голосов
/ 01 октября 2019

Я хочу найти глубину дерева

Я нашел это решение, но я не знаю, верно ли оно для всех случаев:

MATCH p=(parent)-[:RELATES*]->(child)
WHERE id(parent) = 30
RETURN p
ORDER BY length(p) DESC
limit 1

Это дает мне самое длинноепуть, но во-первых: я не знаю, всегда ли он действителен. Во-вторых: я хочу, чтобы вывод был числом глубины, а не самим списком.

Ответы [ 2 ]

0 голосов
/ 02 октября 2019

как упомянул @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
0 голосов
/ 01 октября 2019

Этот запрос должен работать:

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

Хотя это не является строго необходимым, он рассматривает только пути, где child - это лист.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...