ArangoDB is underrated!
Earlier this year, I started contributing to a social media centric project using React, Node, GraphQL, and ArangoDB....wait? what is that?
So what is ArangoDB?
ArangoDB is a highly available and scalable multi-model database to natively work with graphs, documents, and full text search in one database & query language.
ArangoDB is designed for fast development and easy scaling. The best part? It is opensource!!
What's a multi-model database?
A Multi-model database is a database that can store, index, and query data in more than one model. A model such as relational database, document-oriented database, graph database, key-value pairs.
For example, if your application requires a graph database and a key/value store (like redis), you would have to use 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.
Hence, multi-model databases can provide an elegant solution to the challenge of managing heterogeneous data multi-model.
Here's how it compares to other databases
ArangoDB vs Neo4J, ArangoDB vs MongoDB
AQL is powerful
The ArangoDB Query Language (AQL) is a declarative language, meaning that a query expresses what result should be achieved but not how it should be achieved. It's quite human readable as well.
Here's a basic example with AQL
-- Inserting a documentINSERT { "name": "Karan", "role": "Full Stack Developer", "age": 21} INTO Users-- Reading documentsFOR user IN Users RETURN user-- Reading documents with filterFOR user IN Users FILTER user.name == "Karan" RETURN user-- Reading specific documentRETURN DOCUMENT("Users", "<document-key>")
Read more about basic operations here
This is just scratching the surface of AQL. Some of the other great features are powerful graphql traversals, array operators, high-level functions for geo index based searches.
Example for a simple graph traversal
-- General syntax[WITH vertexCollection1[, vertexCollection2]]FOR vertex[, edge[, path]] IN [min[..max]] OUTBOUND|INBOUND|ANY startVertexRETURN vertex[, edge[, path]]-- Example with Users collectionWITH UsersFOR vertex, edge, path IN 1..1 OUTBOUND "users/document-key" RETURN vertex
ArangoDB Oasis
Oasis is a fully managed cloud offering by Arango which makes it easier than ever to scale your cluster. No more worrying about AWS EC2 instances!!
Personal experience
I found ArangoDB to be a delight, it's powerful graph traversals and flexibility of AQL helped with a lot of complicated features we were working on. Hopefully, many more people give this database a try.
Original Link: https://dev.to/karanpratapsingh/arangodb-is-underrated-4c9e
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To