RFC – The ArangoDB/AvocadoDB query language

Note: We changed the name of the database in May 2012. AvocadoDB is now called ArangoDB.

The REST API for AvocadoDB is already available and stable and people are writing APIs using it. Awesome. As AvocacoDB offers more complex data structures like graphs and lists REST is not enough. We implemented a first version of a query language some time ago which is very similar to SQL and UNQL.

Then we realized that this approach was not completely satisfying as some queries cannot expressed very well with it, especially multi-valued attributes/lists. UNQL addresses this partly, but does not go far enough. Another issue are graphs. AvocadoDB supports querying graphs, neither SQL nor UNQL offer any “natural” graph traversal facilities.

As we did not find any existing query language that addresses the problems we found we had to define a new query language. Jan presented the result to the nosql user group in Cologne in March. We got a lot of valuable feedback, which was included in the slides you find below. We have also recorded his talk in English with further explanations (the video is included below the slides).

Now we would love to hear your thoughts on it. Please use the comment section below the blog article. You can also reach Jan via twitter at @steemann, Frank is @fceller and the generic twitter account for avocadoDb is @ArangoDB.

Note: it is planned to have the first version of the query language implemented within four to six weeks from now.

Note 2: Aside from the slides and Jan’s explainations a visualization of the grammar is available online.

RFC: AvocadoDB Query Language from NoSQL matters on Vimeo.

Jan Steemann

Jan Steemann

After more than 30 years of playing around with 8 bit computers, assembler and scripting languages, Jan decided to move on to work in database engineering. Jan is now a senior C/C++ developer with the ArangoDB core team, being there from version 0.1. He is mostly working on performance optimization, storage engines and the querying functionality. He also wrote most of AQL (ArangoDB’s query language).


  1. AvocadoDB Query Language « Another Word For It on April 20, 2012 at 12:53 am

    […] AvocadoDB Query Language […]

  2. Robert Barta on April 22, 2012 at 8:37 am

    Somehow this reminds me of (good old) TMQL The underlying data model was TMDM (the topic map graphy thing), but that only had impact on the path language. The overall engine would not be overly affected.

Leave a Comment

Get the latest tutorials, blog posts and news: