Neo4j可选匹配不适用于2.2.1

时间:2015-05-15 06:44:10

标签: neo4j cypher

我有像

这样的用户数据
    Id        Username 
 ---------------------------
    1         user1
    2         user2
    3         user3
    4         user4
    5         user5

用户之间可能存在friends关系。 现在假设我是user1,那么我需要一个有朋友计数和共同计数的用户列表

在我的数据库中

  • user2有两个朋友user3, user4
  • user4user3
  • 的朋友

我试过像这样

MATCH (me:user {is_deleted:false})
WHERE id(me)= 1
MATCH (allUser:user {is_deleted:false})
OPTIONAL MATCH (allUser)<-[all_friends:friends]-(f:user {is_deleted:false})
OPTIONAL MATCH (me)-[mutual_friends:friends]->(f)

RETURN id(allUser) AS user_id, allUser.username AS username, count(distinct(all_friends)), count(distinct(mutual_friends))

它为我提供all_friend正确的计数。

但是没有正确地计算mutual_friends,即使有现实,它也会返回0.

注意: - 此查询在neo4j 2.1上正常工作,但无法在neo4j 2.2上工作。

在我的查询中应该做些什么才能使其正常工作。

请告诉我是否应该详细解释这个问题。

感谢。

0 个答案:

没有答案