подсчитать количество узлов после кратчайшего пути neo4j

#neo4j #cypher

#neo4j #cypher

Вопрос:

 MATCH (FooB:Actor { name: 'Foob' }),(AnnaH:Actor { name: 'Anna Hathaway' }), p = shortestPath((Foob)-[act:ACTED_IN*]-(AnnaH))
RETURN p
  

Таким образом, это возвращает график p , который является кратчайшим путем от actors Foob до Anna Hathaway. Как мне теперь подсчитать все узлы p с меткой «шоколад»?

Ответ №1:

Это должно сделать это

 RETURN SIZE([n IN nodes(p) WHERE n:chocolate]) AS count
  

Ответ №2:

Используйте функцию узлов в сочетании с UNWIND:

 MATCH (FooB:Actor { name: 'Foob' }),(AnnaH:Actor { name: 'Anna Hathaway' }), p = shortestPath((Foob)-[act:ACTED_IN*]-(AnnaH))
UNWIND nodes(p) AS n
WITH n AS n
WHERE n.chocolate
RETURN COUNT(*)