ArangoDB 2.8
The new release, available now.
the multi-model NoSQL database

A distributed free and open-source database with a flexible data model for documents, graphs, and key-values. Build high performance applications using a convenient SQL-like query language or JavaScript extensions.


Get started

User Survey
get your Arango T-Shirt

Simple to install and to scale

On DC/OS you can now install and manage an ArangoDB cluster easily ​with a single command or click​. Or you can just use Docker to deploy a single instance right away.

Putting your datacenter on Autopilot is as simple as

dcos package install arangodb
  • deploy a cluster as easily as starting a Docker container
  • get automatic resource management in your data center
  • increase your resource utilization

Running ArangoDB in Docker is simple as

docker run arangodb
  • deploy a single instance without installation headache
  • use the same setup for production, staging and development
  • isolate different applications from each other
  • Multi-ModelDocuments, graphs and key-value pairs — model your data as you see fit for your application.

    read more

  • Joins, Joins, JoinsConveniently join what belongs together for flexible ad-hoc querying, less data redundancy.

    read more

  • TransactionsEasy application development keeping your data consistent and safe. No hassle in your client.

    read more

persons and cities are documents; friendship relation is a graph; fast lookup by identifier
FOR p In Persons
  FILTER myfunctions::mustPayTax(p)
  LET distance = LENGTH(
    SHORTEST_PATH(Persons, Friends, p, 'Persons/godfather', 'any'))
join persons with their cities using fast hash lookup, even when sharding
  FOR c IN Cities
     FILTER ==
all modifications together behave as transactions or sub-transactions
      UPDATE p WITH {taxPaid: p.taxPaid * * distance}
        IN Persons

ArangoDB Query Language

Describe document and graph queries in a self-explaining query language. Easy to learn, easy to join.

Multi-Model in Action - Read our latest Case Studies
Build your own Microservices


Use the Foxx framework to expose queries, traversals and database operations as REST/Web API. No need to copy queries to every new client you write. Simply create a microservices to access the data the way you like. Enhance security by access control down to field level.

Query Builder
var Foxx = require("org/arangodb/foxx"),
    controller = new Foxx.Controller(applicationContext),
    joi = require("joi"),
qb = require("aqb"),
    db = require("internal").db;

  function(req, res) {
'FOR p In Persons' +
  'FILTER myfunctions::mustPayTax(p)' +
    'LET distance = LENGTH(' +
      'SHORTEST_PATH(Persons, Friends, p, @godfather, 'any'))' +
    'FOR c IN Cities' +
      'FILTER ==' +
      'UPDATE p WITH {taxPaid: p.taxPaid * * distance}' +
        'IN Persons',
  .let("distance", qb.LENGTH(qb.SHORTEST_PATH(
      "Persons", "Friends", "p", "@godfather", "any")))
    .filter(qb.eq("", ""))
        {taxPaid: qb.mul("p.taxPaid", "", "distance")})
      {godfather: req.params("godfather")}
  }).pathParam("godfather", joi.string().required());

Sign up for ArangoDB Weekly Newsletter

Enter your email and stay informed,

Subscribe to ArangoDB weekly!