The MongoDB Concept - An explanation of the Concepts Behind MongoDB
In this article we’ll discuss the MongoDB concept and some of the characteristics and goals of this technology. We also give you a small bit of history of the technology which will give you some context why MongoDB was developed.
What is MongoDB?
MongoDB is a document database whose functionality depends on a document oriented data model. It was created by Dwight Merriman and Eliot Horowitz when the duo were faced with the challenges of development and scalability using traditional relational database method when developing web applications for an online advertising agency called Double Click which is currently owned by Google Inc.
In the words of the initiator the name given to the database, MongoDB, originated from the word ‘humongous’ serving the concept of supporting larger amounts of data. The duo, Merriman and Horowitz,founded 10GenInc in the year 2007 for the commercialization of MongoDB and its associated software. The name of the company was changed from 10GenInc to MongoDB Inc in the year 2013.
MongoDB is a document database which has the flexibility and scalability needed for querying and indexing. Instead of the traditional tables and rows, MongoDB is built on the architecture of collections and documents. These documents consist of sets of key value pairs which are the basic unit of data in MongoDB. While the collection comprises a set of documents which functions is the equivalent of a table in traditional relational database systems.
MongoDB allows more flexibility in schema, allowing documents in a collection to have various fields and structures. So each document in a collection do not have to have all the same key value pairs as any of the others.
It was released in the year 2009 as open source in accordance with the terms of free software foundation.
Characteristics of this database
- Indexing – Fields in this document-based data can be indexed with both the primary and secondary indices.
- Balancing load – MongoDB scales great horizontally using sharding. Running on multiple servers is possible which supports the load balancing.
- Allows replication – MongoDB supports high availability with replica sets. A replica set involves two or more data copies.
- Storage – It can be used as a file system involving data replication and load balancing features on multiple machines for storage.
- Capped collections – MongoDB enables fixed size collections known as capped collections.
- Aggregation – The system allows users to query the same type of data that you might retrieve from a relational database using SQL. You can do the same types of joins and aggregations you would in SQL but in a totally different syntax, hence NoSQL.
Aims of MongoDB
• Improvement of scalability • Performance improvement • High availability • Upgrading of switch from single server to complex multi-site architectures.
Other NoSQL options
There are numerous NoSQL technologies and options that offer different functionality and use cases.
Elasticsearch is a NoSQL data solution that concentrates on search. It’s a free enterprise-grade search engine that improves extremely fast searches and supports data discovery applications. Elasticsearch could be used to search, store, and analyze large volumes of data very quickly. It is mostly used as the underlying search engine which increases application that have simple or complex search features and requirements.
It’s great for search because it is is great at automating the indexing of your data. Indexing your data allows it to find data faster.
Benefits Built on Lucene – This makes it the strongest full-text search capabilities. Schema Free – It stores a large amount of semi-structured data in a distributed form. Document Oriented – It can store complex entities as structured JSON documents and indexes every field by default, enabling better performance. Full Text Search – Elasticsearch uses linguistic searches against documents by returning the documents that matches the search condition. * Restful API – Elasticsearch allows REST Application Programming Interface that is light-weight protocol.
We discussed the concept behind MongoDB and all the advantages that it has. We discussed it’s characteristics and how it’s different from a traditional SQL table based database. We also gave an overview of some of the related NoSQL technologies.