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
- Extensibility: Additionally, ArangoDB allows you to use existing or run your own data-centric microservices in a dedicated JavaScript framework: Foxx.
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)
"Interested in a more hands-on comparison? Go through our 10 min tutorial on Modelling data in ArangoDB and MongoDB including simple and more complex query examples."
High-Level Overview
Feature | MongoDB | ArangoDB |
---|---|---|
General |
||
Initial Release | 2009 | 2012 |
License | AGPLv3 / Commercial | Apache 2 / Commercial |
Commercial Friendly License | no | yes |
Written in | C++ | C++ |
Data-Model | document | multi-model documents, graphs, key-value |
Schema free | yes additional schema validation | yes schema validation with Foxx |
Data format | JSON / BSON | JSON / VelocyPack |
Data Storage | MMAPv1/WIREDTIGER | MMFiles/RocksDB |
Persistence to disk | yes | yes |
Journaling | yes | yes |
Cluster | ||
Auto-Sharding | yes | yes |
Replication | async | sync / async |
Replication conflict resolution | Master/Agent | Master/Master Master/Agent |
Elastic Scalability | no | yes (also on K8s) |
Zero Configuration | no | yes |
native Apache Mesos Support | no | yes, including persistent primitives |
Transactions | ||
Transaction Model | ACID | ACID |
Multi-Document Transactions | yes | yes* |
Multi-Collection Transactions | yes | yes* |
Querying | ||
Declarative Query Language | No | AQL One sql-like query language for all data-models |
Joins | Aggregation Framework | no |
Advanced path-finding with multiple algorithms | no | yes |
TinkerPop Support | no | yes |
Text search (indexing / queries) | yes / yes | yes / yes |
Geospatial (indexing / queries) | yes / yes | yes / yes |
Extensibility | ||
Microservice Support | No (only JS for map/reduce jobs) | Microservice framework Foxx based on Google V8 ** |
Server-Side Functions | yes | yes |
Security | ||
Encryption | TLS / SSL | TLS / SSL |
Authentication | yes | yes |
Role-based access control | yes | yes *** Attribute level via Foxx framework |
Auditing | yes (enterprise version) | yes (enterprise version) |
Administration | ||
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.