У меня есть DAG в Neo4j и вы хотите найти корневой узел.Поиск корня DAG в Neo4j
Я попытался это:
match (r) where not()-[:HAS_CHILD]->(r) return r
т.е. все узлы, которые не являются дочерним для другого узла. Однако это вернуло несколько тысяч результатов; это DAG с одним корнем!
Я взял один из возвращенных узлов и посмотрел на его окрестности. У него есть родители и дети, поэтому мой запрос неверен. Но я не могу определить, где и почему.
Я использую бета-версию neo4j-community-2.2.0-M03, поэтому ошибка не может быть исключена. Однако все это через консоль Neo4j.
Большое спасибо за вашу помощь - Кристофер
Спасибо за помощь, но два запроса возвращают те же результаты. –
np. Я добавил пример, который подходит для ответа. У вас есть только один корень в ваших данных? –
Еще раз спасибо, я сделал несколько экспериментов на вашем примере, и результаты удивили меня. Сначала я создал дерево примеров, вставив первую строку в консоль, а затем оставшиеся строки. Это не сработало! Ваш запрос не возвращал никаких данных и использовал «match (a) return a» показал серый немаркированный верхний узел и отключенный «a» узел. Затем я удалил график и воссоздал, вставив весь пример за один раз. Этот DID работает, оба графика выглядят правильно со всеми узлами, помеченными и подключенными, как ожидалось, и запрос работал. –