Neo4j:如何在给定日期范围内按中间日期查询

Neo4j: how to query by intermediate date when given date range

Neo4J TimeTree 是一种在图形中对时间进行建模的有效方法。但是,我感兴趣的是如何最好地 model/query 具有定义的开始和结束时间的对象。

例如,票证可能是 validFrom 和 validTo 给定日期,这两个日期可能相隔很多天。一个用户可能有很多票。

对于给定的日期,查询有效机票的最有效方法是什么?

输入数据时,我想我可以在工单与开始和结束之间的中间日期之间创建很多 validOn 关系,但这似乎效率不高。谁能想到更好的查询数据的方法?

我可以从一个用户开始,找到该用户的所有门票,其 validFrom 为 <= 且 validTo 为 >= 日期。但是,如果我需要从约会开始怎么办? IE。匹配在给定日期有效的所有门票?

您只有 link 具有专用关系的 validFrom 和 validTo 日期的门票。

对于任何给定的一天,您向后查询在该日期之前具有 :START 关系但在该日期之后具有 :END 关系的工单,如下所示:

MATCH path = (t:Ticket)-[:START]->(before:Day)-[:NEXT*0..30]->(day:Day {date:{date}})
WHERE (t)-[:END]->(:Day)<-[:NEXT*1..30]-(day)
RETURN t