4 NoSql document databases For your next application
Know about 4 NoSql document databases: MongoDB, DynamoDB, CouchDB & Couchbase
The era of NoSql databases started in the late 2000s and since then the usage of NoSql databases gained support from multiple tech communities across the world starting from tech giants like Google, Amazon, Microsoft, etc... The usage of NoSql databases evolved very much over almost 2 decades mainly because of the following unique features
- Flexible Schema
- Fast & Flexible Querying
- Horizontal Scalability
- Ease of use
What is a Document Database?
There are four types of NoSQL databases like Document Databases, Wide-column databases, Key-Value databases & Graph databases.
Document Databases store data in a similar structure as JSON objects. Each document is equivalent to a database row in a traditional SQL database.
Each document contains keys and values. Value can be of any type ranging from string, number, boolean, array, or another nested object. In this article, I will list 4 popular NoSQL document databases which can be used to evaluate for your next application.
MongoDB
MongoDB is one of the most popular NoSQL document databases which stores data in the form of collections and documents, instead of using tables and rows as in relational databases. It is completely implemented in C++ and developed by MongoDB, Inc in 2009. It has Open Source License.
Below are some of the key features of MongoDB
- Document Oriented - collections are equivalent to tables in a relational database. Each collection has a set of documents equivalent to a record in a relational database.
- Schemaless Database - Documents do not need to have a schema defined beforehand and fields can be created instantly.
- Indexing - It supports primary and secondary indices on document fields which makes it easier to search and takes less time to fetch the data
- Replication - It supports master/slave replication as well as Cluster mode replication.
- Sharding - Supports data sharding
- Load Balancing - Supports automatic load balancing based on the data stored in shards
- Aggregation and Map reduce tools - Supports operations to query the grouped data and fetch the computed result.
- Spatial DBMS - It has support for geo-spatial queries like radius search, bounding box search, etc...
- Backup & restore support
- Security - Supports Role-Based Authorization
Amazon DynamoDB
Amazon DynamoDB is a NoSQL database that supports both Document oriented and Key Value data models. It is developed by Amazon in 2012 and has a commercial license.
Below are some of the key features of DynamoDB
- Document Oriented
- Supports Key-Value storage
- Schemaless Database
- Sharding - Supports sharding via partitions
- Indexing - It supports primary and secondary indices on document fields
- AWS ecosystem Support - Good Integration support with other AWS components like Lambda, AWS streams, Redshift, etc...
- Backup & restore support
- Security - Supports Role-Based Authorization
CouchDB
CouchDB is a NoSQL Document data store developed by Apache Software Foundation in 2005 and has Open Source License.
Each document that is stored in the database is given a document-level unique identifier _id
as well as a revision _rev
number for each change that is made and saved to the database.
Below are some of the key features of CouchDB
- Document Oriented
- Schemaless Database
- Sharding
- Indexing - It supports primary and secondary indices on document fields
- Aggregation and Map reduce tools - Supports operations to query the grouped data and fetch the computed result.
- Spatial DBMS - It has support for geo-spatial queries like radius search, bounding box search, etc...
- Browser-Based GUI - It has GUI called
Futon
which enables a browser-based GUI to handle your data, permission, and configurations. - Backup & restore support
- Security - Supports Role-Based Authorization
Couchbase
Couchbase is a NoSQL database that supports both Document oriented and Key Value data models. It is developed by Couchbase, Inc in 2011 and has Open Source License.
The data is stored in a Couchbase cluster using buckets. Buckets are isolated group records within a cluster. A bucket is the equivalent of a database. They provide a secure mechanism for organizing, managing, and analyzing data storage.
Documents are distributed uniformly across the cluster and stored in the buckets.
Couchbase has a built-in managed cache to enable a memory-first architecture. Read and write operations run at the speed of RAM.
Below are some of the key features of Couchbase
- Document Oriented
- Schemaless Database
- Sharding
- Replication
- Indexing - It supports primary and secondary indices on document fields
- Spatial DBMS - It has support for geo-spatial queries like radius search, bounding box search, etc...
- Automatic Failover support in case any of the nodes in the cluster goes down
- Backup & restore support
- Security - Supports Role-Based Authorization
Thank you for reading
Hope you find these resources useful. If you like what you read and want to see more about system design, microservices, and other technology-related stuff... You can follow me on
Twitter - Follow @vishnuchi