Data Modeling: MongoDB vs ArangoDB | ArangoDB Blog

MongoDB is a document DB whereas ArangoDB is a multi-model DB supporting documents, graphs and key/values within a single database. When it comes to data modeling and data querying, they pursue somewhat different approaches.


In a Nutshell: In MongoDB, data modeling is “aggregate-oriented”, avoiding relations and joins. On the other side, everybody has probably used relational databases which organize the data in tables with relations and try to avoid as much redundancy as possible. Both approaches have their pros and cons. ArangoDB is somewhat in-between: You can both model and query your data in a “relational way” but also in an “aggregate-oriented way”, depending on your use case. ArangoDB offers joins, nesting of sub-documents and multi-collection graphs. (more…)

More info...

Setting Up Test Data: ArangoDB Tutorial & Best Practices

Today I was asked to look at code that was supposed to read data from a MySQL data source, process it and then import it into ArangoDB.

To run and debug the code I had to have some MySQL data source. So I thought I’d quickly set up a simple example table with a few rows. It turned out that this took more time than what I had expected.

Maybe I’m spoilt by JavaScript-enabled, schema-free databases where creating such test setups is so much easier.

Read more on Jan’s Blog

More info...

Prepare your answers… ArangoDB at NYC Database-Month on 11/11

There is a warm-up routine on every evening at the NYC Database Month. Speakers ask trivia questions to the auditorium, related to the topic of the following talk. The first correct answer wins some “swag”. On Tuesday, Nov. 11, 2014 Max from ArangoDB will talk about Polyglot Persistence and multi-model NoSQL databases.

To get a competitive advantage, here are some questions Max might ask:

Q: What does the term Polyglot Persistence mean?
A: Use a variety of different data storage technologies for different kinds of data. (src: Martin Fowler)

Q: What types on NoSQL data-/ storage-models does ArangoDB support?
A: key/values, documents, graphs

Q: NoSQL often comes with restrictions – which of the following features are missing in ArangoDB: joins, transactions, ACID guarantees?
A: none. (ArangoDB even scales and provides competitive performance)

If you are around NYC, let’s grab a seat and watch Max on stage: http://www.databasemonth.com/database/polyglot-persistence

Can’t be there? Then here’s your chance. Be the first to answer the following question in the comments below and get a new ArangoDB t-shirt:

Q: How many different programming languages are supported by ArangoDB?

More info...

First Beta of ArangoDB 2.3: Explore New Features | ArangoDB Blog

This version is deprecated. Download the new version of ArangoDB

We are proud to present ArangoDB 2.3. The first beta version is now available for download from our web-site or you can use “brew install –unstable arangodb” under Mac OS X. You can also look into the nightly documentation for more information.

Please note that the main feature of this release contains a complete rewrite of the query engine, allowing much more optimizations than before – especially in the cluster case. It would be very helpful for us, if you could test this query engine as much as possible. If you find any unexpected behavior, please let us know.

The data-files can be upgraded from 2.x to 2.3. You should, however, backup the database directory beforehand, as this is a beta-release.

Features and improvements

The following list shows in detail which features have been added or improved in ArangoDB 2.3. ArangoDB 2.3 also contains several bug-fixes that are not listed here.

(more…)

More info...

FullStack London

I recently had the chance to visit FullStack London, a well organized conference. Thanks a lot to Skills Matter. FullStack was opened by Douglas Crockford about “The Better Parts” of ES6. I cannot wait to start using them. Douglas was followed by Isaac Schlueter talking about open source in companies. Although this talk was not technical I learned a lot and it was very inspiring.

The remainder of the conference was all about using JavaScript mostly on server-side using Node.js or in robotics. As robotics is not my kind of topic I visited the talks about server-side JS. They confirmed my impression where JS development is heading to: Microservices. (more…)

More info...

Set Up Bash Completion for ArangoDB: Step-by-Step Guide

I was interested in how bash auto-completion works and how to write a custom completer. After about an hour of work, I came up with a solution that at least seems to work on Ubuntu. I now have auto-completion for ArangoDB and all its client tools!

The problem

I use the command-line for almost everything, including starting and stopping ArangoDB and its client tools. They provide lots of options which I cannot completely memorize.

The bash solution for “I don’t know what I am looking for” is to press the TAB key. This will bring up a list of suggestions for how to complete the currently entered word. I thought using the same thing for ArangoDB’s command-line options would be nice, too.

Read more on Jan’s Blog

More info...

ArangoDB 2.2.6 Release: Enhancements & Bug Fixes

This version is deprecated. Download the new version of ArangoDB

A maintenance release for ArangoDB 2.2 is available from the usual channels. v2.2.6 (2014-10-20)
* fixed issue #972: Compilation Issue
* fixed issue #743: temporary directories are now unique and one can read off the tool that created them, if empty, they are removed atexit
* Highly improved performance of all AQL GRAPH_* functions.
* Orphan collections in general graphs can now be found via GRAPH_VERTICES if either “any” or no direction is defined
* Fixed documentation for AQL function GRAPH_NEIGHBORS. The option “vertexCollectionRestriction” is meant to filter the target vertices only, and should not filter the path.
* Fixed a bug in GRAPH_NEIGHBORS which enforced only empty results under certain conditions

More info...

Compile ArangoDB Source: Step-by-Step Guide | ArangoDB Blog

Though we provide a lot of pre-built packages for the stable versions of ArangoDB here, it is often more interesting to play with the bleeding edge development version. New ArangoDB features are normally added to the devel branch, where they can be tested, documented and improved. When a feature matures, it is either backported to a stable branch or will eventually be released when the next stable branch is forked from devel.

Contributing to the core of ArangoDB is also much easier with a ready-to-go devel version. This post explains how to set one up from scratch.

Read more on Jan’s Blog

More info...

Handling Binary Data in Foxx: ArangoDB Tutorial

Handling binary data in JavaScript applications is a bit tricky because JavaScript does not provide a data type for binary data. This post explains how to use binary data in JavaScript actions written using ArangoDB’s Foxx.

String vs. binary data

Internally, JavaScript strings are sequences of 16 bit integer values. Furthermore, the ECMAScript standard requires that a JavaScript implementation should interpret characters in conformance with the Unicode standard, using either UCS-2 or UTF-16 encoding.

While this is fine for handling natural language, it becomes problematic when trying to work with arbitrary binary data. Binary data cannot be used safely in a JavaScript string because it may not be valid UTF-16 data.

Read more on Jan’s Blog

If you want to continue with other JavaScript related resources, you should start with ArangoDB NoSQL and JavaScript.

More info...

ArangoDB 2.2.5 Release: Enhancements & Bug Fixes

This version is deprecated. Download the new version of ArangoDB

A maintenance release for ArangoDB 2.2 is available from the usual channels. v2.2.5 (2014-10-09) ——————-
* fixed issue #961: allow non-JSON values in undocument request bodies
* fixed issue 1028: libicu is now statically linked
* fixed cached lookups of collections on the server, which may have caused spurious   problems after collection rename operations

More info...

Get the latest tutorials,
blog posts and news: