Neo4j включает, где размер пути больше 3 в мой запрос, для которого определены 2 разных метки узла - PullRequest
0 голосов
/ 10 октября 2019

Следующий запрос возвращает узлы и отношения электронных писем, которые при попытке отправки были отправлены со ссылкой или вложением и не были доставлены получателю.

MATCH (s:Sender)-[:ATTEMPTED]->(x)-[:FAILED_TO]->(r:Recipient)
WHERE x:Link OR x:Attachment
return s,x,r

Я хотел бы изменить это так, чтобыЯ могу сказать там, где более 3 получателей в цепочке, добавив что-то вроде:

WITH a, COLLECT(path) AS paths
WHERE SIZE(paths) > 3
RETURN paths

1 Ответ

1 голос
/ 11 октября 2019

Может быть, что-то вроде этого?

MATCH (s:Sender)-[:ATTEMPTED]->(x)
WHERE size((x)-[:FAILED_TO]->()) > 3 AND (x:Link OR x:Attachment)
MATCH (x)-[:FAILED_TO]->(r:Recipient)
return s,x,r

Итак, вы сначала запрашиваете x узлов, которые имеют более 3-х связей FAILED_TO. После того, как вы их найдете, вы ищете их получателей.

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