RFC – The ArangoDB/AvocadoDB query language

Query Language 2 Comments
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.

About Jan Steemann

Jan is a member of ArangoDB's core development team. He is an expert in data modelling with nosql & relational databases and writing high performance web applications. For ArangoDB, he wrote much of AQL (ArangoDB's query language).