neo4j Cypher Иерархическое построение дерева ответ на JSON
Можете ли вы помочь мне построить запрос шифра? У меня есть следующая структура DB графа:
(parent:Category)-[:subcategory]->(child:Category)
С этими данными графика у меня есть иерархическое дерево с глубоким уровнем.
Я нашел следующий код на Stackoverfllow.com и изменил для моих данных:
MATCH (root:Category)-[:subcategory]->(parent:Category)-[:subcategory]->(child:Category)
WITH root, {category: parent, children: collect(child)} AS parent_with_children
WHERE NOT(()-[:subcategory]->(root))
RETURN {category: root, children: collect(parent_with_children)}
Но он строит ответ только на глубину с 3 уровнями дерева. Мне нужно больше. Я пытаюсь построить ответ JSON, как этот пример:
[
category: {
name: "PC"
children: {
category: {
name: "Parts"
children: {
category: {
name: "CPU"
...
}
}
},
category: {
name: "Accessories"
...
}
}
},
category: {
name: "Laptop"
...
}
]
Сайфер может совершать рекурсивные звонки? Я думаю, что это будет лучше.
Благодарю.
Постскриптум Я знаю, что есть похожие вопросы по SO, но они мне не помогли.