2015-07-18 136 views
1

Neo4J TimeTree是一種在圖形中對時間進行建模的有效方法。但是,我對如何最好地對具有定義的開始和結束時間的對象進行建模/查詢感興趣。Neo4j:給定日期範圍內如何查詢中間日期

例如,一張票可能是validFrom和validTo給定的日期,這可能是相隔很多天。用戶可能有許多票據。

對於給定日期,查詢有效票證的最有效方式是什麼?

當輸入數據時,我想我可以在票據與開始與結束之間的中間天數之間創建大量validOn關係,但這似乎效率低下。任何人都可以想到更好的查詢數據的方式嗎?

我可以從一個用戶開始,找到該用戶的validFrom爲< =且validTo爲> =日期的所有門票。但是,如果我需要從約會開始會發生什麼?即匹配在給定日期有效的所有門票?

+0

「我想我可以創造大量的驗證票證與開始和結束之間的中間天數之間的關係,但這似乎效率低下。「 這聽起來不錯,你試過嗎? –

回答

1

您只能將票證鏈接到有專門關係的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