Ich bin sehr interessiert von GraphQL für eine analytische Lösung (denken Sie an eine Webapp Grafik anzeigen). Aber ich kann keine Beispiele für GraphQL finden, die die Aggregatfunktion verwenden. Dies ist ein Hauptaspekt der meisten Abfragen meines Frontends.Unterstützung der Aggregatfunktion in GraphQL
Für meine Lösung haben wir 3 typische Back-End-Anrufe.
- Suche
- Aggregate
- Time Series
Lassen Sie sagen, wir diese Art in GraphQL
type Person {
name: String
age: Int
create_time: Date
}
- Suche
Dies scheint von GraphQL gut gehandhabt zu werden. Keine Frage hier.
ex. Suche Alter von Person namens Bob { Person (Name: "Bob") { Alter } }
- Aggregate
Dies ist der typische Fall, in dem Ich möchte die Informationen in einem Kreisdiagramm anzeigen. Sagen wir also, ich möchte die Anzahl der Personen nach Alter zählen.
Hier wäre die PostgreSQL-Abfrage:
SELECT age, count(*) from Ticket group by age;
Was wäre das Äquivalent in GraphQL sein?
- Zeitreihe Dies ist der typische Fall, in dem ich die Informationen in einem BarChart mit der X-Achse als Zeit anzeigen möchte.
ex. Sagen wir, ich möchte die Anzahl der erstellten Benutzer pro Stunde zählen.
Hier wäre die PostgreSQL-Abfrage sein:
SELECT date_trunc('hour', create_time) as create_time_bin, count(*) from Person group by create_time_bin order by create_time_bin ASC;
Was wäre die GraphQL äquivalente Abfrage sein?
Ganz zu schweigen, wie machen Sie Entfernungsvergleiche für Skalare, wie SELECT * WHERE timestamp> ... UND timestamp <...? Oder Sortieren von Ergebnissen mit einem Skalar? Ich sehe keine davon in der Spezifikation. Was vermisse ich? –
Sie fügen Parameter zu Ihren Feldern hinzu, die diesen Filtertyp zulassen. – Ryan