2013-08-23 110 views
3

我在設計密碼查詢時遇到了一些麻煩。neo4j密碼:如何查詢鏈表

我有時間記錄一些數據的圖形數據結構,使用

(starting_node)-[:last]->(data1)-[:previous]->(data2)-[:previous]->(data3)->... 

每個數據節點有一個日期,以及一些數據,我要總結的屬性。

現在,爲了舉例說明,假設我想查詢上週發生的事情。 我就越接近查詢類似

start n= ... // definition of the many starting nodes here 
match n-[:last]->d1, path = d1-[:previous*0..7]->dn 
where dn.date > some_date_a_week_ago 

不幸的是,我得到了正確的道路,我也得到所有的中間路徑(從2天前,3天前...等)。

由於有很多起始節點,因此有很多可能的路徑長度,我不能要求查詢中最長的路徑。此外,dn.date可以不同於date_a_week_ago(如果本週只有一個數據節點,並且上個月有一個數據節點,那麼期望路徑的長度= 1)。

任何提示如何篩選我的查詢中的中間路徑?

在此先感謝!

ps:順便說一句,我對圖形建模頗爲新穎,如果需要,我會對任何需要更改圖形結構的答案感興趣。

回答

3

你可以在你的路徑添加另一點「dnnext」,並添加一個條件,以確保「DN」是最後一個satisfis的condifition,

start n= ... // definition of the many starting nodes here 
match n-[:last]->d1, path = d1-[:previous*0..7]->dn-[:previous*0..1]->dnnext 
where dn.date > some_date_a_week_ago and dnnext < some_date_a_week 
+0

這正是我一直在尋找,謝謝 ! – aherve