如何在ArangoDB中循环遍历日期范围

时间:2019-01-24 09:45:55

标签: date arangodb echarts arangojs

我需要为开始日期和结束日期之间的每个日期返回一个值。

对于每个row:如果日期在row.date中,那么我需要返回row.myValue,否则需要返回null。

示例:

dateRange = {start: '2018-01-01', end: '2018-01-03'}
aqlCollection = [
  {date: '2018-01-01', myVal: 1},
  {date: '2018-01-02', myVal: 2},
  {date: '2017-05-18', myVal: 3}
]

这应该返回:

[
  {'2018-01-01': 1},
  {'2018-01-02': 2},
  {'2018-01-03': null}
]

只要arangodb中有一个WHILE循环,就可以完成此操作。或者,如果我可以使用增量器进行循环而不是做FOR date IN dates,那么我可以说FOR date=startRange; date<endRange; date+=24hrs

关于如何在Arango查询中实现此目标的任何想法?如果不可能,我将在一个简单的按日期分组查询之后执行O(n)循环,并添加所有不存在的日期。

1 个答案:

答案 0 :(得分:0)

请查看:https://docs.arangodb.com/3.4/AQL/Functions/Date.html

如果您具有日期格式的属性,则可以使用for循环枚举集合的项目,并对该属性使用过滤器以获取特定范围内的日期。正如您已经展示的。在属性上添加索引将使您获得不错的速度。这将确保仅检查具有匹配日期的对象。