ArangoDB Module

const arangodb = require('@arangodb')

This module should not be confused with the
arangojs JavaScript driver
which can be used to access ArangoDB from outside the database. Although the
APIs share similarities and the functionality overlaps, the two are not
compatible with each other and can not be used interchangeably.

The db object

arangodb.db

The db object represents the current database and lets you access collections and run queries. For more information see the db object reference.

The aql template tag

arangodb.aql

The aql function is a JavaScript template string handler (or template tag).
It can be used to write complex AQL queries as multi-line strings without
having to worry about bindVars and the distinction between collections
and regular parameters.

To use it just prefix a JavaScript template string (the ones with backticks
instead of quotes) with its import name (e.g. aql) and pass in variables
like you would with a regular template string. The string will automatically
be converted into an object with query and bindVars attributes which you
can pass directly to db._query to execute. If you pass in a collection it
will be automatically recognized as a collection reference
and handled accordingly.

Starting with ArangoDB 3.4 queries generated using the aql template tag can
be used inside other aql template strings, allowing arbitrary nesting. Bind
parameters of nested queries will be merged automatically.

The query helper

arangodb.query

In most cases you will likely use the aql template handler to create a query you directly pass to
db._query. To make this even easier ArangoDB provides the query template handler, which behaves
exactly like aql but also directly executes the query and returns the result cursor instead of
the query object:

The errors object

arangodb.errors

This object provides useful objects for each error code ArangoDB might use in ArangoError errors. This is helpful when trying to catch specific errors raised by ArangoDB, e.g. when trying to access a document that does not exist. Each object has a code property corresponding to the errorNum found on ArangoError errors.

consterrors=require('@arangodb').errors;try{someCollection.document('does-not-exist');}catch(e){if(e.isArangoError&&e.errorNum===errors.ERROR_ARANGO_DOCUMENT_NOT_FOUND.code){thrownewError('Document does not exist');}thrownewError('Something went wrong');}

The time function

arangodb.time

This function provides the current time in seconds as a floating point value with microsecond precisison.

This function can be used instead of Date.now() when additional precision is needed.