AQL: Improved data-modification queries

Data-modification queries were enhanced in ArangoDB 2.4 to be able to also return the inserted, update or removed documents. For example, the following statement inserted a few documents and also returned them with all their attributes:

The syntax for returning documents from data-modification queries only supported the exact above format. Using a LET clause was required, and the RETURN clause was limited to returning the variable introduced by the LET. These syntax restrictions have been lifted in the devel branch, which will become release 2.6 eventually.

The changes make returning values from data-modification statements easier and also more flexible.
More »

Posted in API | 1 Comment

Preview of the UPSERT Command

This week saw the completion of the AQL UPSERT command. This command will be very helpful in a lot of use cases, including the following:

  • ensure that a document exists
  • update a document if it exists, otherwise create it
  • replace a document if it exists, otherwise create it

The UPSERT command is executed on the server side and so delivers client applications from issuing a fetch command followed by a separate, conditional UPDATE or INSERT command.

The general format of an UPSERT statement is:

Jan collected a few example invocations of UPSERT in his blog.

Posted in API | Leave a comment

Slides: Is multi-model the future of NoSQL?

Here is a slideshare and recording of my talk about multi-model databases, presented in Santa Clara earlier this month.

Abstract: Recently a new breed of “multi-model” databases has emerged. They are a document store, a graph database and a key/value store combined in one program. Therefore they are able to cover a lot of use cases which otherwise would need multiple different database systems. This approach promises a boost to the idea of “polyglot persistence“, which has become very popular in recent years although it creates some friction in the form of data conversion and synchronisation between different systems. This is, because with a multi-model database one can enjoy the benefits of polyglot persistence without the disadvantages.

In this talk I will explain the motivation behind the multi-model approach, discuss its advantages and limitations, and will then risk to make some predictions about the NoSQL database market in five years time. More »

Posted in Future-of-nosql, Presentation | Leave a comment

Weekly Newsletter, March 26, 2015



More »

Posted in Newsletter | Leave a comment

Graphs in data modeling 

Max wrote an inspiring article about graphs in data modeling on Medium, packed with his own thoughts – “to sort out some things in my brain” (Max).

He asks and answers the question: Are graphs and graph databases useful in data modeling, and if so, for what and under which circumstances?

In his article, he goes all the way down from the theoretical approach of what is a graph? towards storing a graph in different storage models (RDBMS, document store and graph databases) to querying a graph and finally to his personal conclusion. More »

Posted in Future-of-nosql, Graphs | Comments Off

ArangoDB 2.5.1 available

A new release of ArangoDB is available for download.

ArangoDB 2.5.1 adds slow-query log and killing running queries to the Http API and to the web-interface. We have also fixed inefficiencies in remove methods of the general-graph module and solved some issues regarding stability on windows. The added option --database.ignore-logfile-errors controls how collection datafiles with a CRC mismatch are treated. We recommend to upgrade your 2.5.0 installation to benefit from these improvements.

ArangoDB 2.5.1 could be started from an unzipped archive, no need to install ArangoDB and share libraries in Windows. More »

Posted in Releases | Leave a comment

Weekly Newsletter, March 19, 2015

ArangoDB Releases

A maintenance release of ArangoDB is available. You can find a full list of changes in our change-log. Here are some of the changes:

  • New Feature: Slow query tracking
  • Added elapsed time to HTTP request logging output

More »

Posted in Newsletter | Leave a comment

Agile development vs. schema enforcement – a paradox resolved

The fans of modern and agile software development usually propose to use schemaless database engines to allow for greater flexibility, in particular during the early rapid prototyping phase of IT projects. The more traditionally minded insist that having a strict schema that is enforced by the persistence layer throughout the lifetime of a project is necessary to ensure quality and security.
In this post I would like to explain briefly, why I believe that both groups are completely right and why this is not so paradoxical as it sounds at first glance. More »

Posted in Architecture | Leave a comment

Foxx console – Logging and querying console messages

Aside from the more noticeable features, ArangoDB 2.5 also added the console object to the scope of all Foxx app modules. Unlike the object already available by importing the console module, the Foxx console logs all messages directly to the database.

In addition to allowing you to specify per-application log levels to make sure your debug messages don’t end up cluttering your production database, the API also provides useful extras like optionally logging a full stack trace for every message that is stored as a structured list of objects, making them easy to query using AQL. There’s also a number of convenience methods for querying your application’s log entries from within your Foxx code if you prefer keeping it simple.

For more information see the chapter on the Foxx console API in the official ArangoDB documentation.

Posted in Foxx | Comments Off

Webinar: Polyglot Persistence & Multi-Model Databases – March, 24th

We travel around the world to join meetups and conferences, talking about the benefits of NoSQL in general, multi-model databases and ArangoDB in particular. Not yet had the chance to attend?

This time, you can join Michaels presentation about polyglot persistence & multi-model databases via Webinar.

Here’s the agenda for the Webinar on March, 24th at 1 pm EDT / 6pm CET: More »

Posted in Community, Presentation | Comments Off