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

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

问题描述:

Neo4J TimeTree是一种在图形中对时间进行建模的有效方法。但是,我对如何最好地对具有定义的开始和结束时间的对象进行建模/查询感兴趣。Neo4j:给定日期范围内如何查询中间日期

例如,一张票可能是validFrom和validTo给定的日期,这可能是相隔很多天。用户可能有许多票据。

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

当输入数据时,我想我可以在票据与开始与结束之间的中间天数之间创建大量validOn关系,但这似乎效率低下。任何人都可以想到更好的查询数据的方式吗?

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

+0

“我想我可以创造大量的验证票证与开始和结束之间的中间天数之间的关系,但这似乎效率低下。“ 这听起来不错,你试过吗? –

您只能将票证链接到有专门关系的validFrom和validTo日期。

对于任何给定的一天,您查询的后倾有他们的票:启动日期之前的关系,但:在该日期之后结束的关系,这样的事情:

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