根据Neo4j中的时间树查找第一个/最后一个事件

时间:2017-09-01 10:16:09

标签: neo4j cypher

我创建了一个时间树(日 - 月 - 年)并为其分配了事件。现在,我尝试为导致事件的用户找到第一个和最后一个事件。这是我找到最后一个事件的代码(假设所有事件都发生在同一个月):

match (day:Day)<--(event:Event)-->(user:User{userID:"007"})
with MAX(day.Day) AS max
match (day) where day.Day=max
return day

但是此查询会返回所有日期,而不仅仅是具有最高.Day-Property的那一天。

找到节点后,我将使用它处理,因此以下解决方案不适合

  RETURN ... ORDER BY ... DESC LIMIT 1

非常感谢!

注意:时间树模型的设计如图所示。 来源: graphaware.com enter image description here

1 个答案:

答案 0 :(得分:1)

有效:

match (day:Day)<--(event:Event)-->(user:User{UserID:"007"})
with MAX(day.Day) AS max, collect(day) as days
match (day) where day in days anD  day.Day=max
return day