0

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

对于每个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}
]

WHILE如果arangodb 中有一个循环,这可以简单地完成。或者,如果我可以 for 循环使用增量器而不是这样做,FOR date IN dates那么我可以说FOR date=startRange; date<endRange; date+=24hrs.

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

4

1 回答 1

0

请看一下:https ://docs.arangodb.com/3.4/AQL/Functions/Date.html 。

如果您有日期格式的属性,那么您可以使用 for 循环枚举集合的项目,并在属性上使用过滤器来获取特定范围内的日期。正如你已经展示的那样。在属性上添加索引会给你一个很好的加速。它将确保仅检查具有匹配日期的对象。

于 2019-01-24T10:27:15.953 回答