A lot will look familiar.
FOR … FILTER … SORT … LIMIT … RETURN, @bind values and the _key, _id, _from and _to conventions carry over. Multiple FOR clauses and bounded traversals are supported. CGQL has its own grammar and supported feature set.
A small rewrite, made explicit.
Find handles containing “rook”, ignoring case, and return up to ten. In the AQL example, bind take to 10.
FOR a IN accounts
FILTER LIKE(a.handle, "%rook%", true)
LIMIT @take
RETURN a.handleFOR a IN accounts
FILTER CONTAINS(LOWER(a.handle), "rook")
LIMIT 10
RETURN a.handleLIKE becomes CONTAINS with LOWER; a bound limit becomes a literal integer. This example uses ASCII handles.
Check these before moving a workload.
| Area | CGQL boundary |
|---|---|
| Query text | Double-quoted strings; literal limits; no @@collection binds or bracket attribute access. |
| Graph queries | Name an edge collection. Named graphs, PRUNE and traversal OPTIONS are unsupported. |
| HTTP results | Use bind_vars in the request. Results arrive as a complete set, without AQL’s cursor API. |
| Search & writes | Full-text search uses an HTTP endpoint. Mutations need explicit enablement and write authorization. |
Scope: ArangoDB 3.11/3.12 AQL compared with CogniGraph's CGQL. Both CogniGraph editions use Native storage. Query rewrites and data conversion are separate migration steps; direct dump import is not yet available.