繁体   English   中英

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

[英]How to Loop Over Date Range in ArangoDB

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

对于每一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 FOR date=startRange; date<endRange; date+=24hrs FOR date=startRange; date<endRange; date+=24hrs

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM