ArangoDB v3.4 reached End of Life (EOL) and is no longer supported.
This documentation is outdated. Please see the most recent version here: Latest Docs
Managing AQL user functions
These functions implement the HTTP API for managing AQL user functions.
database.listFunctions
async database.listFunctions(): Array<Object>
Fetches a list of all AQL user functions registered with the database.
Examples
const db = new Database();
const functions = db.listFunctions();
// functions is a list of function descriptions
database.createFunction
async database.createFunction(name, code): Object
Creates an AQL user function with the given name and code if it does not already exist or replaces it if a function with the same name already existed.
Arguments
-
name:
string
A valid AQL function name, e.g.:
"myfuncs::accounting::calculate_vat"
. -
code:
string
A string evaluating to a JavaScript function (not a JavaScript function object).
Examples
const db = new Database();
await db.createFunction(
'ACME::ACCOUNTING::CALCULATE_VAT',
String(function (price) {
return price * 0.19;
})
);
// Use the new function in an AQL query with template handler:
const cursor = await db.query(aql`
FOR product IN products
RETURN MERGE(
{vat: ACME::ACCOUNTING::CALCULATE_VAT(product.price)},
product
)
`);
// cursor is a cursor for the query result
database.dropFunction
async database.dropFunction(name, [group]): Object
Deletes the AQL user function with the given name from the database.
Arguments
-
name:
string
The name of the user function to drop.
-
group:
boolean
(Default:false
)If set to
true
, all functions with a name starting with name will be deleted; otherwise only the function with the exact name will be deleted.
Examples
const db = new Database();
await db.dropFunction('ACME::ACCOUNTING::CALCULATE_VAT');
// the function no longer exists