Diese Abfrage funktioniert:Ändern AQL, so dass Unterabfrageergebnis in zwei separate Arrays abgeflacht ist
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}
Und gibt mir dies:
[
{
data: 18,
frequency: 69
},
{
data: 19,
frequency: 73
},
{
data: 20,
frequency: 86
}
]
Aber was ich will ist wirklich so etwas wie dieses
Ich erwartete die folgende Abfrage zu arbeiten - aber die PUSH-Anweisungen fehlschlagen (Syntaxfehler), versuchte ich eine Reihe von P USH-Anweisungen in FOR-Schleifen, kann sie aber nicht bekommen zu arbeiten, wie ich erwarten, die ich etwas tue absolut geistige
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}
Jede Beratung wäre toll bedeuten würde!
Sie es herausgefunden, ein dickes Lob! Eine Anmerkung zu PUSH: Sie können ein Element anhängen, aber Sie können eine vorhandene Variable nicht neu definieren - Sie haben versucht, die Variablen 'data' und' frequency' (mehrfach) zu ändern, aber es ist nicht erlaubt (nicht Nebenwirkung frei). AQL ist keine vollständige Programmiersprache, und dies ist absichtlich: Abfragen können aufgrund der inhärenten Einschränkungen von AQL sehr optimiert werden. Es gibt jedoch normalerweise reine AQL-Lösungen, zum Beispiel mit Unterabfragen. – CoDEmanX
Da Sie die Antwort auf Ihr Problem bereits gefunden haben, können Sie Ihre Antwort als akzeptiert markieren? ;-) – dothebart