Сколько узлов участвует в матче - PullRequest
0 голосов
/ 27 марта 2019

Как узнать, сколько узлов и ребер задействовано в МАТЧЕ?Есть ли другой способ, кроме объяснения / соответствия профиля?

Ответы [ 3 ]

1 голос
/ 27 марта 2019

Если вы имеете в виду, сколько узлов сопоставляются в пути, например пути переменной длины, тогда вы можете назначить переменную пути для этого:

MATCH p = (k:Person {name:'Keanu Reeves'})-[*..8]-(t:Person {name:'Tom Hanks'})
WITH p LIMIT 1
RETURN p, length(p) as pathLength, length(p) + 1 as numberOfNodesInPath

Вы можететакже используйте nodes(p) и relationships(p), чтобы получить коллекцию узлов и отношений, которые составляют путь, и вы можете использовать size() в этих коллекциях, чтобы получить их размер.

0 голосов
/ 29 марта 2019

Следующий фрагмент кода Cypher должен возвращать количество различных узлов и отношений, найденных в любом данном предложении MATCH. Просто замените <your code here> на ваш MATCH шаблон.

MATCH <your code here>
WITH COLLECT(NODES(p)) AS ns, SUM(SIZE(RELATIONSHIPS(p))) AS relCount
UNWIND ns AS nodeList
UNWIND nodeList AS node
RETURN COUNT(DISTINCT node) AS nodeCount, relCount;
0 голосов
/ 27 марта 2019

Существует функция COUNT() Cypher, которая позволяет подсчитывать количество элементов.Как, например, в этом запросе:

MATCH (n)
RETURN COUNT(n);

Этот запрос будет подсчитывать все узлы в вашей базе данных.

Более подробную информацию вы можете найти в руководстве по шифрованию в разделе функций агрегирования. Проверьте это.

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