Давайте считать
с [: SUB_CATEGORY] в качестве узла отношения
ниже запроса Cypher для извлечения вместе с его частями, помеченными каждым узлом
MATCH p=(n:Category)-[:SUB_CATEGORY*]->(m)<-[:TAGGED_TO]-(part:Part)
WHERE NOT ()-[:SUB_CATEGORY]->(n) AND toLower(part.name) STARTS WITH toLower('atm')
WITH COLLECT(p) AS ps
RETURN ps
над запросом шифра возвращает фактический набор результатов, т. Е. Он показывает все отношения как SUB_CATEGORY и TAGGED_TO
Теперь, если я использовал для преобразования этого в древовидную структуру с использованием процедуры APOC, он пропускает узел отношений TAGGED_TO родительского узла, т. Е. Drone
MATCH p=(n:Category)-[:SUB_CATEGORY*]->(m)<-[:TAGGED_TO]-(part:Part)
WHERE NOT ()-[:SUB_CATEGORY]->(n) AND toLower(part.name) STARTS WITH toLower('atm')
WITH COLLECT(p) AS ps
CALL apoc.convert.toTree(ps) YIELD value
RETURN value
Можете ли вы дать мне предложение получить узел TAGGED_TO всех узлов вместе с родительским узлом, используя APOC