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
}
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.
Read in Jan’s blog how this rule could accelerate your queries
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
andSubqueryNode
in AQL explain output
Harness the Power of Custom Visitors for AQL Graph Traversals
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.
New Address for GitHub: ArangoDB Updates
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.
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:
- Debugging of Foxx apps
- Getting started with Foxx
- Development Mode
(more…)
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…)
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.
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.
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.
Get the latest tutorials,
blog posts and news:
Thanks for subscribing! Please check your email for further instructions.