Was ist aql?

AQL (ArangoDB Query Language) ist die Abfragesprache, die in der NoSQL-Datenbank ArangoDB verwendet wird. Sie ist eine deklarative Sprache, die es ermöglicht, Daten aus einer oder mehreren Sammlungen (Collections) abzurufen, zu filtern, zu transformieren und zu aggregieren. AQL ist sowohl für dokumentenorientierte als auch für graphorientierte Operationen optimiert und unterstützt auch Joins über mehrere Sammlungen hinweg.

Kernkonzepte:

  • Syntax: AQL verwendet eine SQL-ähnliche Syntax, ist aber an die Besonderheiten von NoSQL-Datenbanken angepasst. Die grundlegende Struktur besteht aus einem FOR-Loop, der über eine oder mehrere Sammlungen iteriert, optionalen FILTER-Bedingungen, COLLECT-Operationen zur Aggregation und einer RETURN-Anweisung, die das Ergebnis der Abfrage definiert.
  • FOR-Schleife: Der FOR-Loop ist das Herzstück jeder AQL-Abfrage. Er iteriert über alle Dokumente in einer angegebenen Sammlung. Mehrere FOR-Loops können verwendet werden, um Joins zwischen Sammlungen zu realisieren. Siehe: FOR%20Schleife
  • FILTER: Die FILTER-Klausel wird verwendet, um die Dokumente zu filtern, die im FOR-Loop verarbeitet werden. Sie ermöglicht es, nur Dokumente auszuwählen, die bestimmte Kriterien erfüllen. Siehe: FILTER
  • COLLECT: Die COLLECT-Klausel ermöglicht das Gruppieren und Aggregieren von Daten. Sie kann verwendet werden, um beispielsweise die Anzahl der Dokumente in einer Gruppe zu zählen oder statistische Berechnungen durchzuführen. Siehe: COLLECT
  • RETURN: Die RETURN-Anweisung definiert, welche Daten von der Abfrage zurückgegeben werden sollen. Sie kann verwendet werden, um einzelne Felder, ganze Dokumente oder berechnete Werte zurückzugeben. Siehe: RETURN
  • Joins: AQL unterstützt Joins über mehrere Sammlungen hinweg. Dies kann durch Verwendung mehrerer FOR-Loops und FILTER-Bedingungen erreicht werden. Siehe: Joins
  • Graph-Traversal: AQL bietet spezielle Funktionen zur Navigation in Graphen. Dies ermöglicht das Abrufen von Beziehungen zwischen Knoten und Kanten. Siehe: Graph%20Traversal
  • Funktionen: AQL bietet eine Vielzahl integrierter Funktionen für Zeichenkettenmanipulation, Datumsberechnungen, mathematische Operationen und vieles mehr. Siehe: Funktionen
  • Indexe: AQL nutzt Indexe, um die Abfrageperformance zu verbessern. Es ist wichtig, geeignete Indexe für die verwendeten Filterbedingungen zu erstellen. Siehe: Indexe

Beispiel:

FOR doc IN myCollection
  FILTER doc.age > 18
  RETURN doc

Diese Abfrage iteriert über alle Dokumente in der Sammlung myCollection, filtert die Dokumente, deren Feld age größer als 18 ist, und gibt diese Dokumente zurück.

Vorteile:

  • Einfach zu erlernen (SQL-ähnliche Syntax)
  • Leistungsstark für dokumentenorientierte und graphorientierte Daten
  • Flexibel durch die Unterstützung von Joins und Aggregationen
  • Optimiert für die Verwendung mit ArangoDB