2014-01-24 59 views
0

我被賦予了可視化使用Neo4j作爲後端的應用程序的功能使用情況的任務。例如,我想要顯示每年創建多少個「願望」元素。 Wish節點具有creationDate屬性,可在創建元素時保存時間戳。

輸出應該是這樣的:使用時間戳查詢Neo4j的年度統計信息

Year #Wishes 
2000 20 
2001 99 

...

盡我目前可以輸出爲

Year   Description 
1365431858  "smth" 
1365431859  "smth2" 

...

START n = node(0) 
MATCH (n)-[:WISH]->(m) 
RETURN m.creationDate as Year, m.description as Description 

如何我可以將時間戳分成幾年/幾個月嗎?應用程序正在使用neo4j 1.8.3

+0

CASE/WHEN解決了這個問題的Neo4j 2.0 –

回答

1

我想你可以只使用部門提取的一年。

喜歡的東西:

return 1970 + round(m.creationDate/(365.242 * 24 * 3600)), count(m) 

所以你的情況這將是2014年

0

因爲1.8.3沒有本機日期類型,所以我不認爲您可以在單個密碼查詢中按年分組。

這裏有兩種方法需要考慮:

1)帶日期範圍的多個查詢。因此,2012 可能樣子:

MATCH (n)-[:WISH]->(m) 
WHERE m.creationDate > '1325376000' AND m.creationDate < '1356998399' 
return count(m) as total, '2012' as year 

可能不是最優雅的方式,但它是一個解決方案:)

2)修改模型以包括最新信息的關係。如果你所尋找的只是一年的關係,它可以很快處理。這裏有一個帖子在討論該選項:

Modeling dates in Neo4j