Вы захотите просмотреть функции агрегирования , которые можно использовать в предложении WITH для группировки.
Например, если вы хотите сгруппировать имена актеров с каждым фильмом, вы можете сделать это:
MATCH (p:Person)-[:ACTED_IN]->(m:Movie)
WITH m, collect(p.name) as actors
RETURN m.title AS movie, actors
Тем не менее, есть некоторые сокращения, которые мы можем здесь сделать, поскольку вы спрашиваете об общем количестве актеров на фильм (см. Нашу статью базы знаний по , используя подсчет степеней из узла вместо выполнения расширений ).
Если вы хотите сохранить отдельную строку для каждого актера, но при этом иметь количество акторов, поскольку мы знаем: отношения ACTED_IN никогда не будут передаваться одному и тому же актеру более одного раза, мы можем получить степень: ACTED_IN отношений, поступающих в каждый: узел фильма, чтобы получить наш счет. Для достижения наилучших результатов получите степень, прежде чем перейти к актерам:
MATCH (m:Movie)
WITH m, m.title as title, size((m)<-[:ACTED_IN]-()) as num_of_actors
MATCH (p:Person)-[:ACTED_IN]->(m)
RETURN title, p.name as actor, num_of_actors