Совокупный счетчик изменяется при многократном возврате - PullRequest
0 голосов
/ 18 января 2019

Я отправляю запрос на шифрование через php.

match (n:person)-[:watched]->(m:movie)
where m.Title in $mycollection
return count(distinct n.id);

возвращает число людей, которые смотрели фильмы в моей коллекции. Я на самом деле хочу вернуть список имен, и вернуть n.name отлично работает.

Когда я пытаюсь вернуть n.name и count (отличный от n.id) одновременно, я теряю общее количество и получаю количество в строке.

match (n:person)-[:watched]->(m:movie)
where m.Title in $mycollection
return n.name, count(distinct n.id);

не работает. Столбец счета отображается как 1 для каждой строки.

Поскольку я использую php, я также попробовал:

$count = $result->getNodesCount();

безрезультатно. Поэтому я использую php для подсчета массива. Но такое чувство, что Сайфер должен уметь это делать, верно?

1 Ответ

0 голосов
/ 18 января 2019

return n.name, count(distinct n.name) означает «вернуть каждое отдельное значение n.name и его количество различных значений». Число должно всегда быть 1, так как отличное значение, очевидно, различно.

Если вы на самом деле ищете количество раз, когда у каждого человека были исходящие отношения с фильмом, название которого указано в $mycollection, сделайте это вместо этого (где count(*) подсчитывает количество совпадений с данным n.name ):

MATCH (n:person)-->(m:movie)
WHERE m.Title in $mycollection
RETURN n.name, count(*);

Обратите внимание, что в приведенном выше запросе пропущен шаблон [watched], найденный в вашем запросе, поскольку этот синтаксис (без двоеточия до watched) вообще не фильтрует. Он просто присваивает отношение переменной с именем watched, но эта переменная не используется иным образом и поэтому является излишней.

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

MATCH (n:person)-[:watched]->(m:movie)
WHERE m.Title in $mycollection
RETURN n.name, count(*);

Этот измененный запрос возвращает количество раз, когда каждый человек смотрел фильм с заголовком $mycollection

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