Как получить различные узлы в пути в NEO4J? - PullRequest
0 голосов
/ 22 января 2020

Я новичок в Cypher и Neo4j. У меня проблемы со сбором всех отдельных узлов на пути Neo4j.

MATCH (e)
WHERE SIZE((e:Customer)<-[:Transaction]-()) <> 0
AND SIZE(()<-[:Transaction]-(e)) <> 0
MATCH path = (e)<-[:Transaction*10..15]-(e)
with e,nodes(path) as nods return (how to return distinct of nods)

После получения узлов с пути, как получить отдельные узлы на этом пути?

1 Ответ

1 голос
/ 22 января 2020
MATCH (e)
WHERE SIZE((e:Customer)<-[:Transaction]-()) <> 0
AND SIZE(()<-[:Transaction]-(e)) <> 0
MATCH path = (e)<-[:Transaction*10..15]-(e)
with e,nodes(path) as nods
UNWIND nods as node
RETURN e, COLLECT(DISTINCT node)

этот запрос будет делать. но вам не нужно делать

WHERE SIZE((e:Customer)<-[:Transaction]-()) <> 0
AND SIZE(()<-[:Transaction]-(e)) <> 0

, вместо этого

WHERE e:Customer AND (e)-[:Transaction]->() AND (e)<-[:Transaction]-()

будет лучше с точки зрения производительности

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