我被赋予了可视化使用Neo4j作为后端的应用程序的功能使用的任务。例如,我希望可视化每年创建多少“愿望”元素。 Wish节点有一个creationDate属性,可以在创建元素时保存时间戳。
输出应如下所示:
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 :(得分:1)
我认为你可以使用just division来提取年份。
类似的东西:
return 1970 + round(m.creationDate / (365.242 * 24 * 3600)), count(m)
所以在你的情况下,它将是2014年。
答案 1 :(得分: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)修改模型以包含与日期信息的关系。如果您所寻找的只是一年的关系,那么可以很快处理。这是一篇讨论该选项的帖子: