ArangoDB 3.12 Product Release Announcement! Read the blog for details. Read Blog

Vector-5

Community Notebook Challenge

Estimated reading time: 2 minutes

Calling all Community Members! 🥑

Today we are excited to announce our Community Notebook Challenge.

What is our Notebook Challenge you ask? Well, this blog post is going to catch you up to speed and get you excited to participate and have the chance to win the grand prize: a pair of custom Apple Airpod Pros.

Our Interactive Tutorials repository has a library of python notebooks available covering the full spectrum of ArangoDB features. Although we cover a lot of topics, something is missing… YOUR notebook! As announced in our July Newsletter on July 29th and running until October 31st, the ..

(more…)

Best Practices for AQL Graph Queries

Estimated reading time: 9 minutes

Estimated reading time: 8 minutes

The ArangoDB Query Language(AQL) was designed to accomplish a few important goals, including:

(more…)

From Zero to Advanced Graph Query Knowledge with ArangoDB

Estimated reading time: 1 minutes

Thinking about your data as a highly connected set of information is a powerful way to gain insights, solve problems and bring products faster into the hands of your users.

Unlike other databases, relationships take the first priority in graph databases and with ArangoDBs multi-model approach for graphs, documents and key/value pairs you can even switch between models or combine them in a single query.

The graph concept is booming but still new to many. So we invested a few bazillion coffees and some night shifts to come up with a good plan for a Graph Course:

(more…)

Small Things in ArangoDB 2.8: Explain Improvements, POW, Arangoimp

Estimated reading time: 2 minutes

Explain Improvements

Explaining AQL queries becomes even easier in ArangoDB 2.8. While previous versions required writing a hard-to-memorize command like

require("org/arangodb/aql/explainer").explain(query);

to explain an AQL query from the ArangoShell, 2.8 reduces this task to a mere

db._explain(query);

Apart from that, explain in 2.8 is smarter when confronted with very lengthy query strings, and with queries that contain huge hard-coded string, array, or object values.

(more…)

Killing a long-running query

Estimated reading time: 1 minutes

Suppose there is an AQL query that’s executing in the server for a long time already and you want to get rid of it. What can be done to abort that query?

If a connection to the server can still be established, the easiest is to use the ArangoShell to fetch the list of currently executing AQL queries and send a kill command to the server for the correct query.

To start, we can fetch the list of all running queries and print their ids, query strings and runtimes. This is only inspection and does not abort any query:

var queries = require("org/arangodb/aql/queries"); queries.current();

Here’s..

(more…)

On building AQL Query Strings

Estimated reading time: 2 minutes

I recently wrote two recipes about generating AQL query strings. They are contained in the ArangoDB cookbook by now:

After that, Github user tracker1 suggested in Github issue 1457 to take the ES6 template string variant even further, using a generator function for string building, and also using promises and ES7 async/await.

We can’t use ES7 async/await in ArangoDB at the moment due to lacking support in V8, but the suggested template string generator function seemed to be an obvious improvement that deserved inclusion in..

(more…)

AQL object literal simplification

Estimated reading time: 1 minutes

ArangoDB’s devel branch recently saw a change that makes writing some AQL queries a bit simpler.

The change introduces an optional shorthand notation for object attributes in the style of ES6’s enhanced object literal notation.

(more…)

Introducing RETURN DISTINCT for AQL queries

Estimated reading time: 1 minutes

Last week saw the addition of the RETURN DISTINCT for AQL queries. This is a new shortcut syntax for making result sets unique.

For this purpose it can be used as an easier-to-memorize alternative for the already existing COLLECT statement. COLLECT is very flexible and can be used for multiple purposes, but it is syntactic overkill for making a result-set unique.

(more…)

Diffing Two Documents in AQL

Estimated reading time: 0 minutes

I just stumbled upon a comment in the ArangoDB blog asking how to create a diff of two documents with AQL.

Though there is no built-in AQL function to diff two documents, it is easily possible to build your own like in the following query.

(more…)

COLLECTing With a Hash Table

Estimated reading time: 8 minutes

ArangoDB 2.6 will feature an alternative hash implementation of the AQL COLLECT operation. The new implementation can speed up some AQL queries that can not exploit indexes on the COLLECT group criteria.

This blog post provides a preview of the feature and shows some nice performance improvements. It also explains the COLLECT-related optimizer parts and how the optimizer will decide whether to use the new or the traditional implementation.

Introduction to COLLECT

A quick recap: in AQL, the COLLECT operation can be used for grouping and optionally counting values.

(more…)
«
1 2 3
»