Dynamic Attribute Names in AQL: ArangoDB Techniques

On our mailing list, there is quite often the question whether attribute names in objects returned from AQL queries can be made dynamic. Jan discusses in his blog how such dynamic attribute names could be expressed and shows the current implementation that comes with ArangoDB 2.5 – adapting an ES6 proposal that might bring robust dynamic variable names to JavaScript as well.

In ArangoDB 2.5 you will be able to use dynamic variable names as follows:

FOR doc IN collection
  LET type = doc.type;
  RETURN { [type] : doc.value }

Functions are allowed as well:

FOR i IN 1..3 
  RETURN { 
    [ CONCAT('test', i) ] : i
  }    

Read on here

More info...

ArangoDB Optimizer Rule: Efficient Calculations

In the upcoming ArangoDB 2.5 (current devel branch) a new optimizer rule move-calculations-down was added. Jan showcases in his latest blog post how queries with calculations could benefit from this new optimiser rule.

move-calculations-down

Read in Jan’s blog how this rule could accelerate your queries

More info...

ArangoDB 2.4.2

This version is deprecated. Download the new version of ArangoDB

A maintenance release for ArangoDB 2.4.2 is available for download or via your favourite package manager.

v2.4.2 (2015-01-30)

  • added custom visitor functionality for AQL traversals

This allows more complex result processing in traversals triggered by AQL. A few examples are shown in this article.

  • improved number of results estimated for nodes of type EnumerateListNode and SubqueryNode in AQL explain output

(more…)

More info...

Harness the Power of Custom Visitors for AQL Graph Traversals

Visitors by jan

Jan blogged about some recent extensions for the AQL graph traversal functionality in ArangoDB. These extensions allow invoking user-defined JavaScript code for filtering and results generation in AQL queries that contain traversals.

This should make AQL graph traversals much more powerful than before.

Additionally, AQL graph traversals get more configurable, allowing to write traversal functions with control-flow logic and complex filtering. As a side-effect, this change facilitates writing specialized traversal functions with much higher efficiency than the general-purpose, cover-all-cases default ones.

Continued here on J@ArangoDB’s blog

More info...

New Address for GitHub: ArangoDB Updates

github_changed

We have moved our ArangoDB Github repository from triAGENS to arangodb.

The database:

triAGENS/ArangoDB –> arangodb/arangodb

We’ve also moved:

  • arangodb-php –> arangodb/arangodb-php
  • elasticsearch-river-arangodb –> arangodb/elasticsearch-river-arangodb

For a certain amount of time the old triAGENS – repositories will redirect to the new ones.

More info...

New Foxx Debugging Preview: ArangoDB Updates

We are working hard to improve usability and simplify the usage of Foxx which will be shipped with version 2.5. of ArangoDB.

We have learned from the past and collected a lot of feedback, thanks to all people using Foxx already. It helped us to identify the following three important areas of Foxx that should be improved:

  1. Debugging of Foxx apps
  2. Getting started with Foxx
  3. Development Mode
    (more…)
More info...

Building a self-learning game with ArangoDB, io.js & AngularJS in half a day.

With the ArangoDB Foxx Microservice Framework we’ve introduced an easy way to create a Web API right on top of the NoSQL database.

In early January Max challenged Andreas (AngularJS / NodeJS) that they could build a full-stack application within half a day.

The web application – in short – is a guessing game, in which the computer tries to guess a thing or animal you think of by asking a series of questions, for which you provide the answers. (more…)

More info...

Explaining AQL Queries in a Fancier Way: ArangoDB Tutorial

I have been looking at many AQL queries during the last few weeks…

Looking back, I can say that the JSON query execution plans provided by the explain() method have provided me with a lot of useful information about how the AQL optimizer had transformed a given query. This has helped testing and improving the query optimizer a great deal.

However, the JSON output produced by explain() is so detailed that even for the simplest cases queries it will span multiple screens. This is far too much for quickly assessing what a query will be doing and how it will be executed.

I therefore quickly put together a function that provides a much more compact explain output. Its input parameter is a query string, which it will send to the ArangoDB server to have it explained.

But it doesn’t print a voluminous JSON object. This one is for developers with a full schedule.

Read more on Jan’s Blog

More info...

ArangoDB 2.4.1 Release: Enhancements & Bug Fixes

This version is deprecated. Download the new version of ArangoDB

A maintenance release for ArangoDB 2.4.1 is available for download or via your favourite package manager.

v2.4.1 (2015-01-19)

  • improved WAL recovery output
  • fixed certain OR optimizations in AQL optimizer
  • better diagnostics for arangoimp
  • fixed invalid result of HTTP REST API method /_admin/foxx/rescan
  • fixed possible segmentation fault when passing a Buffer object into a V8 function as a parameter
  • updated AQB module to 1.8.0.
More info...

ArangoDB 2.3.5: Maintenance Release & Bug Fixes

This version is deprecated. Download the new version of ArangoDB

A new maintenance release for the 2.3 branch of ArangoDB is available.

Changes in v2.3.5 (2015-01-16)

  • fixed intermittent 404 errors in Foxx apps after mounting or unmounting apps
  • fixed issue #1200: Expansion operator results in “Cannot call method ‘forEach’ of null”
  • fixed issue #1199: Cannot unlink root node of plan

Note: The latest version is 2.4, released last week.

More info...

Get the latest tutorials,
blog posts and news: