Neo4j Cypher, как включить еще один узел отношения родителя в запрос шифра APOC neo4j

Рассмотрим

  • Drone (Parent)
    • Quadcropter (Child)
      • Pixel (Grand Child)

с [: 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

вышеупомянутый запрос cypher возвращает фактический набор результатов, то есть показывает все отношения как 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


person Mani    schedule 06.09.2018    source источник


Ответы (1)


В первом запросе показана связь TAGGED_TO между родительским узлом Drone и узлом :Part, поскольку включена опция браузера Connect result nodes:

Если этот флажок установлен, после получения результата запроса шифрования выполняется второй запрос для получения взаимосвязей между узлами результатов.

Но на самом деле в результате такой связи нет, потому что шаблон соответствия не учитывает возможность путь с длинным нулем. Попробуй это:

MATCH p=(n:Category)-[:SUB_CATEGORY*0..]->(m:Category)<-[: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
person stdob--    schedule 06.09.2018
comment
Спасибо, я попробовал ваше предложение, но все равно не получил никакого результата по вышеуказанному запросу. тот же результат, он не включает узел отношения TAGGED_TO с корневым узлом 'DRONE' - person Mani; 06.09.2018