3
此查询的工作:更改AQL,这样子查询结果压扁成两个单独的阵列
FOR person IN 1..1 INBOUND @companyID employed_by
LET age = DATE_DIFF(person.age * 1000, @currentTime * 1000, 'y')
COLLECT label = age WITH COUNT INTO value
RETURN {data: label, frequency: value}
,给我这样的:
[
{
data: 18,
frequency: 69
},
{
data: 19,
frequency: 73
},
{
data: 20,
frequency: 86
}
]
但我真正想要的是像这样
{
data: [18, 19, 20]
frequency: [69, 73, 86]
}
我期待着下面的查询工作 - 但PUSH语句失败(语法错误),我试了一堆P在FOR循环,但不能让他们如我所料工作USH报表,这将意味着我正在做的事情绝对精神
LET data = []
LET frequency = []
LET temp =
(
FOR person IN 1..1 INBOUND @companyID employed_by
LET age = DATE_DIFF(person.age * 1000, @currentTime * 1000, 'y')
COLLECT label = age WITH COUNT INTO value
data = PUSH(data, label)
frequency = PUSH(frequency, value)
RETURN true
)
RETURN {data: data, frequency: frequency}
任何意见将是巨大的!
你想通了,荣誉!关于PUSH的一个注释:它可以让你附加一个元素,但是你不能重新定义一个已经存在的变量 - 你尝试的是改变变量'data'和'frequency'(多次),但不允许(不是副作用免费)。 AQL不是一种完整的编程语言,这是有目的的:由于AQL的固有限制,查询可以进行很多优化。通常有纯粹的AQL解决方案,例如使用子查询。 – CoDEmanX
既然您已经找到了您的问题的答案,您是否可以将您的答案标记为已接受? ;-) – dothebart