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.