What you can't do with MongoDB
- Multi-model: MongoDB is a single-model document database. It does not support any other data models. If your application requires a graph or key/value store, you would have to use a second database technology to support it. Being multi-model, ArangoDB allows you to not only use one database for both, but run ad-hoc queries on data stored in different models.
- Joins: Using and scaling joins over different collections and instances is not supported by MongoDB (scalability depends on the use case).
- Declarative Query Language: MongoDB uses JSON syntax for queries. It does not support a declarative query language. By contrast, ArangoDB developed its own SQL-like query language (AQL) for complex queries, allowing the combination of access patterns in a single query
- Complex Transactions: Use complex transactions to span multiple documents and collections, or to run aggregations. Complete Isolation in the cluster available
Scalability needs and ArangoDB
ArangoDB is cluster ready for document, key/value and even for graph-models. With ArangoDB 3.x releases further improvements are being made for performant cluster usage with graphs.
ArangoDB is perfectly suitable for high-availability, high-performance or any other use case a document store might be challenged with.
By reducing development effort and enabling data-model flexibility, ArangoDB is designed for fast development and easy scaling. With the Foxx Microservices Framework, you can build production-ready session services within minutes.
We use ArangoDB and it’s flexible multi-model approach. What we found was ease of use and a stunning 50% less development effort by using ArangoDBs framework Foxx.
(Florian Krause, Head of development – ABOUT YOU, Otto-Group)
|License||AGPLv3 / Commercial||Apache 2 / Commercial|
|Commercial Friendly License||no||yes|
documents, graphs, key-value
additional schema validation
schema validation with Foxx
|Data format||JSON / BSON||JSON / VelocyPack|
|Persistence to disk||yes||yes|
|Replication||async||sync / async|
|Replication conflict resolution||Master/Agent||Master/Master
|Elastic Scalability||no||yes (also on K8s)|
|native Apache Mesos Support||no||yes,
including persistent primitives
|Declarative Query Language||no||AQL
One sql-like query language for all data-models
|Advanced path-finding with multiple algorithms||no||yes|
|Text search (indexing / queries)||yes / yes||yes / yes|
|Geospatial (indexing / queries)||yes / yes||yes / yes|
(only JS for map/reduce jobs)
|Microservice framework Foxx
based on Google V8 **
|Encryption||TLS / SSL||TLS / SSL|
|Role-based access control||yes||yes ***
Attribute level via Foxx framework
|Web-based GUI (self-contained)||no||yes|
|Cluster friendly GUI||no||yes|
* In single server setups, ArangoDB supports full ACID transactions for multi-document & multi-collection transactions. In a cluster setup, ArangoDB only supports multi-document & multi-collection transactions for non-sharded collections. Single document transactions are supported for shared collections.
** Easily create a REST API for data-centric use cases and add any missing functionality.
*** ArangoDB supports all basic security requirements. By using ArangoDB’s Foxx microservice framework users can achieve very high security standards fitting individual needs.
Performance Benchmark of ArangoDB
Benchmarks continue to show competitive to superior performance in ArangoDB over single-model databases, like MongoDB, Neo4j and PostgreSQL, as well as other multi-model databases, like OrientDB.
Our complete benchmark series is open source. It investigates how databases perform in some of the most common operations, such as single read/writes, single write sync, aggregation, shortest paths, neighbors, neighbors with profiles, and memory usage.
Overall Results: Performance Benchmark (February 2018)