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.