ArangoDB is a free and open-source native multi-model database system developed by ArangoDB GmbH. The database system supports three data models with one database core and a unified query language AQL. The query language is declarative and allows the combination of different data access patterns in a single query. ArangoDB is a NoSQL database system but AQL is similar in many ways to SQL. ArangoDB has been referred to as a universal database but its creators refer to it as a "native multi-model" database to indicate that it was designed specifically to allow key/value, document, and graph data to be stored together and queried with a common language.
History
Started in 2011, the database was originally released under the name AvocadoDB, but changed to ArangoDB in 2012.
Features
ArangoDB provides scalable queries when working with graph data. The database uses JSON as a default storage format, but internally it uses ArangoDB's VelocyPack – a fast and compact binary format for serialization and storage. ArangoDB can natively store a nested JSON object as a data entry inside a collection. Therefore, there is no need to disassemble the resulting JSON objects. Thus, the stored data would simply inherit the tree structure of the JSON data. ArangoDB works in a distributed cluster and is the first DBMS being certified for the Datacenter Operating System. DC/OS allows the user to deploy ArangoDB on most existing ecosystems: Amazon Web Services, Google Compute Engine and Microsoft Azure. Moreover, it provides single-click deployment for the user's cluster. ArangoDB provides integration with native JavaScript microservices directly on top of the DBMS using the Foxx framework, which is analogous to multithreaded Node.js. The database has its own AQL and also provides GraphQL to write flexible native web services directly on top of the DBMS. ArangoSearch is a new search engine feature in the 3.4 release. The search engine combines boolean retrieval capabilities with generalized ranking components allowing for data retrieval based on a precise vector space model.
Query language
AQL is the SQL-like query language used in ArangoDB. It supports CRUD operations for both documents and edges, but it is not a data definition language. AQL does support geospatial queries. AQL is JSON-oriented as illustrated by the following query, which also illustrates the intuitive "dot" notation for accessing the values of keys: FOR x IN FILTER x.a.A < 2 RETURN x.a
Example
The following is a parameterized query for finding the number of descendants of a particular node in a graph named @g with @max nodes: FOR v IN 1.. @max OUTBOUND @start GRAPH @g OPTIONS COLLECT WITH COUNT INTO c RETURN c The uppercase words are AQL keywords. Notice how AQL is graph-aware. The OPTIONS are necessary to ensure the query can be run on a graph with cycles; "bfs" stands for breadth-first search.
Editions
ArangoDB Community Edition is a free native multi-model database written in C++ and available under an open-source license. In addition to the Community Edition, ArangoDB Enterprise is a paid subscription that includes SmartGraphs, Satellite Collections and many enterprise-level security features.