关于Match / with子句的Newbie Neo4j问题

时间:2015-05-29 00:58:05

标签: neo4j cypher graph-databases

所以想象一下,在我的关系中[event] --> [person] 这个事件可以与同一个人有很多关系。例如:

   /-----------\
  /---------v   v
event----->[person]
  \---------^

在这种情况下,我们有一个事件与此[person]节点有3个关系。 (可能会出现很多这种情况)

我的问题只选择那些x具有相同关系的x。

现在我有了查询。

MATCH (e:Event)-[r:FOLLOWS]->(f:Follows { name: "ExamplePerson"})
with e, count(r) as alias
where alias > 3
return e, alias

但这是返回总关系,例如:

   /------------- \
  /------------v   v
event----->[person1]
  \---------^
   \---------->[person2]

= 4而不是3。  我也尝试了以下内容:

MATCH (e:Event)-[r:FOLLOWS]->(f:Follows { name: "ExamplePerson"})
with e, count((e:Event)-[r:FOLLOWS]->(f:Follows { name: "ExamplePerson"})) as alias
where alias > 3
return e, alias

没有成功我做错了什么?

1 个答案:

答案 0 :(得分:0)

尝试为同一个人进行分组,例如将此更改改为第一次尝试:

MATCH (e:Event)-[r:FOLLOWS]->(f:Follows { name: "ExamplePerson"})
with e, f, count(r) as alias
where alias > 3
return e, f, alias