MongoDB Logo

MongoDB: open-source NoSQL Database for BigData and Cloud

MongoDB is a cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas. Big Data refers to very large and often complex data sets, so massive in size that they’re beyond the capability of managing with traditional software tools. That's why non-relational databases such as MongoDB (which are inherently designed to handle unstructured inputs) are a great fit for Big Data, especially in the cloud.
Written in: C++, GO, Javascript

License: OpenSource SSPL (Server Side Public License)

Project Website: mongodb.com

Documentation: docs.mongodb.com

Project Goals
  • MongoDB is a schema-less NoSQL database.
  • No complex joins are needed in MongoDB. There is no relationship among data in MongoDB.
  • Easy to scale, very easy to set-up and install.
  • The document query language supported by MongoDB is very simple as compared to SQL queries.
  • Because the MongoDB uses JSON format to store data, it is very easy to store arrays and objects.
  • There is no need for mapping of application objects to database objects in MongoDB.
  • Performance of MongoDB is much higher than compared to any relational database.
  • It uses internal memory for storage which enables faster access to the data.
  • MongoDB is free to use. There is no cost for it.
Project Features
  • Ad-hoc queries. MongoDB supports field, range query, and regular-expression searches.
  • Indexing. Fields in a MongoDB document can be indexed with primary and secondary indices.
  • Replication.
  • Load balancing.
  • Aggregation and Map Reduce support.
  • Server-side JavaScript execution.
  • File storage.
Project Design and Security
  • In RDBMS, We need to create tables, schemas, and relations first. But in MongoDB, there is no need for such tables, schema, and relations.
  • MongoDB provides an _id field which is created itself with every document and it acts as the primary key.
  • Setting up a relational database is not easy while setting up MongoDB is very simple.
  • RDBMS are not suitable for hierarchical data storage while MongoDB is best for it.
  • RDBMS are slower as compared to NoSQL databases. MongoDB is 100 times faster than RDBMS.

Sample Configuration
## Sample Configuration for MongoDB @ /etc/mongodb.conf

processManagement:
  fork: true
net:
  # Only listen on the local network interface.
  # Change this only if you need a public-facing instance and have turned on authorization.
  bindIp: 127.0.0.1
storage:
  dbPath: /var/mongodb/data
  journal:
    enabled: true
systemLog:
  destination: file
  path: /var/log/mongodb/mongodb.log
  logAppend: true

## END