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).

Related posts

  • AQL: Querying a nosql database the elegant & comfortable wayAQL: Querying a nosql database the elegant & comfortable way
    Having a long history with relational databases and having worked for a lot of years with SQL some people find it a bit inconvenient querying nosql databases e.g. via REST. Others have rather complex ...
  • Is UNQL Dead?Is UNQL Dead?
    Note: We changed the name of the database in May 2012. AvocadoDB is now called ArangoDB. UNQL started with quite some hype last year. However, after some burst of activity the project came to a hol...
  • (German video) Nosql meets mobile.cologne(German video) Nosql meets mobile.cologne
    Last week Jan (core member of ArangoDB and the brain behind AQL and many other parts) was invited by "mobile.cologne" - a user group here in Cologne dealing with mobile development. In this talk Ja...