[英]Neo4j: how to query by intermediate date when given date range
Neo4J TimeTree是在圖形中建模時間的有效方法。 但是,我對如何最好地對具有定義的開始和結束時間的對象進行建模/查詢感興趣。
例如,票證可能是給定日期的有效期自和有效期至,可以相隔很多天。 用戶可能有很多票。
對於給定的日期,查詢有效票證的最有效方法是什么?
輸入數據時,我想我可以在票證與開始和結束之間的中間日期之間創建許多validOn關系,但這似乎效率很低。 誰能想到一種查詢數據的更好方法?
我可以從一個用戶開始,找到該用戶的所有票證,該用戶的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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.