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