We know that the information internet generates is today much large than yesterday. Also, that the enterprise capable of extract the value of that data will adopt better strategic decisions and will offer their customers the best products. Therefore, store and analyze the information as quickly as possible will be key.
Today, most of the data are non structured and, hence, we need databases capable of store and process them as quickly as possible. In this area arises MongoDB.
MongoDB is the leading NoSQL database, let’s see why:
- It can store any type of data: structured, semi-structured and polymorphic.
- Huge performance in data process and scalability.
- It can process the large amount of information that we generate (millions of users per application, social networks growing steadily, Internet of Things, cloud computing, etc).
- It supports the current requirements of the applications (millions of users, thousands of requests per second, etc).
- It empowers enterprises to be more agile growing quickly, create new type of applications/products, improve customer experience, accelerate time to market and reduce costs.
- It is a document oriented database. This means that in only one document is capable of store all the information required for your product. In the fields of the document we can allocate any type of information including arrays and embedded documents. This allows documents to have a very rich and flexible structure.
- We can shape your schema design on-the-fly, leading to much faster development. This is possible because we can do it from the code side, without the need to spending our time in administrative database tasks, as it would be in relational databases.
- Developers have all the same functionalities they have in their RDBMS (like secondary indexes, a full query language, etc).
These are its main features:
- General purpose database, almost as fast as the key:value NoSQL type.
- High availability.
- Scalability (from a standalone server to distributed architectures of huge clusters). This allows us to shard our database transparently across all our shards. This increases the performance of our data processing.
- Aggregation: batch data processing and aggregate calculations using native MongoDB operations.
- Load Balancing: automatic data movement across different shards for load balancing.
- Native Replication: syncing data across all the servers at the replica set.
- Security: authentication, authorization, etc.
- Advanced users management.
- Automatic failover: automatic election of a new primary when it has gone down.
- Zero downtime upgrades.
- There are no bottlenecks processing large volumes of data.
- MongoDB uses JSON objects to store and transmit information. JSON is the web standard protocol and it is a great advantage that both web and database use it.
- We can do queries and geospatial operations in 2D and 3D.
- MongoDB Management Service (MMS) is a powerfull web tool that allows us tracking our databases and our machines and also backing up our data:
- MMS tracks the database and hardware metrics for managing a MongoDB deployment
- Performance is visualized in a rich web console to help you optimize your deployment
- Custom alerts: Discover issues before your MongoDB instance will be affected
- Continuous backup with point-in-time recovery of replica sets and sharded clusters
- Multiple copies of every backup are archived across data centers (geographically distributed and fault-tolerant)
- Automatización de tareas (coming soon):
- Simple launch and configuration of standalone MongoDB instances, replica sets or sharded clusters
- Hot upgrades
In summary, MongoDB has been built to be fast (no joins but embedded documents), flexible (schema less), scalable (horizontal no vertical), to minimize administrative tasks (replication, disaster recovery, automatic failover, sharding, load balancing, etc), easy to learn and with powerful tools for data analysis (aggregation framework).
Big companies like Telefónica, Bosch, Coca Cola, CISCO, Leroy Merlin, ebay, IBM, Forbes and many others already use MongoDB. Cities like Chicago are using a system composed of MongoDB and Hadoop to analyze data and make quick decisions in order to achieve a better quality of life for their citizens.
Of course, the biggest cloud computing providers (Amazon Web Services, Google Cloud Platform, Microsoft Azure, etc) are already offering MongoDB.
As we have seen, the growth of MongoDB is unstoppable.
In future posts we will learn more about the features and chances of this great database.