Neo4J: найти подграф произвольной глубины с узлами, связанными заданным набором отношений?

Как построить запрос Neo4J, который:

1) Вернет ли все узлы в подграфе произвольной глубины с узлами, связанными заданным набором отношений?

Например, в синтаксисе, подобном Cypher:

MATCH (*)-[r1:FRIEND_OF AND r2:COLLEAGUE_WITH]->(*) RETURN * 

person DarqMoth    schedule 18.04.2014    source источник


Ответы (1)


Этот запрос вернет только узлы, как вы указали в своем вопросе:

MATCH (n)-[:FRIEND_OF|COLLEAGUE_WITH*]->(m)
RETURN n, m;

Если вы также хотите отношения:

MATCH (n)-[r:FRIEND_OF|COLLEAGUE_WITH*]->(m)
RETURN n, r, m;
person cybersam    schedule 18.04.2014
comment
Спасибо! Что делать, если в базе данных есть несколько таких подграфов, которые не связаны друг с другом? Другими словами: в лесу есть несколько деревьев, где каждое дерево имеет корень, отличный от корней других деревьев. Узлы во всех этих различных поддеревьях связаны одним и тем же отношением. Какой запрос вернет все эти деревья? - person DarqMoth; 19.04.2014
comment
Один и тот же запрос будет соответствовать всем подграфам. Попробуйте. - person cybersam; 19.04.2014
comment
Спасибо за Принятие. Пожалуйста, также проголосуйте за мой ответ, так как, по-видимому, вы подумали, что он довольно хорош :-). - person cybersam; 19.04.2014