Фильтрует ли neo4j по умолчанию круговые отношения в предложении соответствия - PullRequest
0 голосов
/ 29 июня 2018

Если у меня есть связь между узлами A и B как A - [: знает] -> B, следующий запрос ничего не возвращает

MATCH (A)-[:knows]-(B)-[:knows]-(A) return *;

В то время как запрос с явным 'with' работает

MATCH (A)-[:knows]-(B) with B MATCH (B)-[:knows]-(A) return *;

Почему это поведение? Почему первый запрос ничего не возвращает? Поведение не меняется, даже если я использую направления отношений в запросе на совпадение.

1 Ответ

0 голосов
/ 29 июня 2018

Внутри шаблона Сайфер будет проходить только ОДИН РАЗ отношения.

С вашим шаблоном (A)-[r1:knows]-(B)-[r2:knows]-(A), r1 ДОЛЖЕН отличаться от r2. Так что если у вас есть только одно отношение между A и B, этот шаблон ничего не даст.

Это поведение позволяет избежать циклов в запросах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...