2015-10-04 113 views
0

已在我的Neo4J中实现了时间树我思考如何使用timetree的节点排序查询的结果,因为每个独立站点不足以进行查询。在SQL中,我可能会使用CONCAT来生成排序标准,但在Cypher中我可以使用提示。Timetree:使用节点进行排序

假设

MATCH (e:Event) --> (h:Hour)--(d:Day)--(m:Month) -- (y:Year) 
     RETURN 
       e.name 
     ORDER BY // here I would like to have an DESC or ASC order of the names depending on their relation to the timetree 

我将如何查询,以便所有的事件都在所要求的顺序?

另外,我将如何查询该时间树中的时间范围,例如,从dd/mm/yy到dd/mm/yy?

感谢您的支持。

回答

2

的Neo4j会做自动聚合,如果你需要的是通过关系型聚集,你可以为了你的事件节点的时间属性:

MATCH (n:Event)-[r]->(:Hour) 
WITH type(r) AS rel, n 
ORDER BY n.time DESC 
RETURN rel, collect(n) AS events 

您可以测试在这里查询:http://console.neo4j.org/r/iqts8f

对于范围查询,在即将到来的2.3范围内查询可以使用时间戳上的索引,但是TimeTrees通常比这更复杂,请查看:

https://github.com/graphaware/neo4j-timetree

+0

非常感谢您的努力。我的问题是,我想排序的节点w/o他们有一个自己的时间戳,但使用挂钩到timetree。但是我会遵循你的建议并将时间再次存储在事件节点中,并按节点时间戳排序,而不是按照时间树排序。很好的帮助,谢谢。 – Balael

相关问题