2015-08-18 2 views
2

Этот запрос не будет возвращать пользователей без подписчиков.Neo4j, считающий нулевые отношения?

MATCH (:USER)-[f:FOLLOWS]->(u:USER) 
RETURN u.name, count(f) 

Как я могу вернуть всех пользователей здесь вместе с 0 для тех, у кого нет ребер?

+0

добавлен более быстрый вариант –

ответ

2

Для соответствия (:User) также, когда нет [:FOLLOWS], вы должны сделать это необязательным.

MATCH (u:User) 
OPTIONAL MATCH u-[f:FOLLOWS]->(:User) 
RETURN u.name, count(f) 
1

Это будет быстрее:

MATCH (u:User) 
RETURN u.name, 
     size((u)-[:FOLLOWS]->()) as following, 
     size((u)<-[:FOLLOWS]-()) as followers; 

Как он использует функцию getDegree внутренне, чтобы получить число отношений.

Смежные вопросы