Этот запрос не будет возвращать пользователей без подписчиков.Neo4j, считающий нулевые отношения?
MATCH (:USER)-[f:FOLLOWS]->(u:USER)
RETURN u.name, count(f)
Как я могу вернуть всех пользователей здесь вместе с 0 для тех, у кого нет ребер?
Этот запрос не будет возвращать пользователей без подписчиков.Neo4j, считающий нулевые отношения?
MATCH (:USER)-[f:FOLLOWS]->(u:USER)
RETURN u.name, count(f)
Как я могу вернуть всех пользователей здесь вместе с 0 для тех, у кого нет ребер?
Для соответствия (:User)
также, когда нет [:FOLLOWS]
, вы должны сделать это необязательным.
MATCH (u:User)
OPTIONAL MATCH u-[f:FOLLOWS]->(:User)
RETURN u.name, count(f)
Это будет быстрее:
MATCH (u:User)
RETURN u.name,
size((u)-[:FOLLOWS]->()) as following,
size((u)<-[:FOLLOWS]-()) as followers;
Как он использует функцию getDegree внутренне, чтобы получить число отношений.
добавлен более быстрый вариант –