匹配neo4j中最近的可能节点

时间:2018-04-05 21:34:00

标签: time neo4j cypher

我有一棵时间树,它的颗粒间隔为5分钟。尝试匹配确切的分钟时我没有问题。但在少数情况下,我可能会搜索与节点不完全匹配的一分钟。对于前者如果我想匹配10:05我可以。但如果输入是10.03我得不到结果。我将纪元时间添加到分钟节点。我想返回给定输入可用的最近的分钟节点(如果它的10.03然后返回10.05)。我该如何实现这一目标?

MATCH (startMinute:Minute {epoch:apoc.date.parse('2018-04-12T16:33', 'ms',"yyyy-MM-dd'T'HH:mm")}) return startMinute

我的模特是 here

1 个答案:

答案 0 :(得分:0)

如果你想要总结时间:

MATCH (startMinute:Minute {epoch:
  (apoc.date.parse('2018-04-12T16:32', 'ms',"yyyy-MM-dd'T'HH:mm") + 29999)/300000*300000})
RETURN startMinute;

或者,如果你想要舍入到最近的:

MATCH (startMinute:Minute {epoch:
  (apoc.date.parse('2018-04-12T16:32', 'ms',"yyyy-MM-dd'T'HH:mm") + 150000)/300000*300000})
RETURN startMinute;