Introduction to MongoDB

18 februari 2022 om 10:00 by ParTech Media - Post a comment

Today’s demand for robust and highly scalable applications has led to some difficulties that cannot be solved by the typical SQL databases. This is because SQL databases stores data in tabular format, and this pre-defined model is not suitable for highly scalable applications today.

Modern applications are more interactive, social, and more networked. Relational Database management systems (RDBMS) are no longer a good choice for handling big data since they are not horizontally scalable. If the database runs on a single server, it will reach its scaling limit.

But in the case of NoSQL databases, they are more scalable and provide robust performance. MongoDB is one such NoSQL database to which more and more servers can be added to increase its scalability and productivity with its document object model. In this post, we will see everything about MongoDB, including its features and key operations that you can achieve through it.

Table of Contents

  1. What is MongoDB?
  2. CRUD operations in MongoDB
  3. Key features of MongoDB
  4. Closing Thoughts

What is MongoDB?

MongoDB is a document-based NoSQL database and cross-platform that is used predominantly for high volume data storage. MongoDB is much more effective than RDBMS due to its effective indexing and storage techniques.

Due to its scalability, MongoDB is being used by big players like Adobe, Cisco, Craigslist, eBay, FourSquare, and Ericsson. Also, owing to its immense usage, MongoDB offers official driver support to almost all popular programming languages today, including C, C#, Ruby on Rails, PERL, Python, Go, Scala, Node JS, Erlang, and many more.

MongoDB was developed as an open-source project while the company focused on support services. This open-source project became rapidly popular among companies, with the New York Times using MongoDB to build an application that enabled them to submit photos to their website. After a roaring success of the open-source project, the company was named MongoDB Inc in 2013.

Currently, MongoDB comes in three editions -

  • MongoDB community server
  • MongoDB enterprise server
  • MongoDB Atlas

The MongoDB community edition is free and available for Windows, Linux, and Mac operating systems.

The MongoDB enterprise server is more of a commercial edition of MongoDB, available as a part of the MongoDB enterprise advanced subscription.

Atlas is a fully managed on-demand service provided by MongoDB and is capable of running on Microsoft Azure, AWS, and Google cloud platforms.

CRUD operations in MongoDB

Here are the different types of operations that you can perform in MongoDB -

Create operations

Create or insert operations adds new documents to a collection. If a collection does not exist, the insert operation takes care of creating a new collection. MongoDB uses the following queries to create/insert documents in a collection -

  • db.collection.insertOne()
  • db.collection.insertMany()

Read operations

Read operations help retrieve documents from a collection. MongoDB provides the following method for querying documents through collections -

  • db.collection.find()

Update operations

Update operations help modify existing documents in a collection. Update operations include the following methods -

  • db.collection.updateOne()
  • db.collection.updateMany()
  • db.collection.replaceOne()

Delete operations

Delete operations help to delete documents from a collection. You can also specify particular documents using the following methods -

  • db.collection.deleteOne()
  • db.collection.deleteMany()

Key features of MongoDB

Apart from the default NoSQL features, MongoDB offers some amazing features such as the below -

  1. MongoDB provides high performance in terms of Input/Output operations as compared to relational databases. It achieves faster retrieval of data since it uses an embedded document model and indexes supporting faster queries.

  2. Another important feature of MongoDB is that it uses the BSON format. BSON is a JSON-like storage format. It is also known as Binary JSON, which is a binary-encoded serialization of JSON-like documents which MongoDB uses when storing documents in collections. The advantage of the BSON format is that they tend to be smaller than JSON formats and designed in such a way to achieve better speed and efficiency, thus enhancing MongoDB’s read/write throughput. BSON format enables indexing and mapping of document properties and even nested documents.

  3. MongoDB provides extensive replication features to distribute data across multiple machines. Its replica set includes one master node and one or more secondary nodes. This is very similar to a master-slave replication. The master node is used for read/write operations, and the slave nodes just copy data from the master node and are generally used as a backup for contingencies.

  4. MongoDB management service(MMS) is a robust service offered by MongoDB which allows tracking your databases distributed across multiple machines and also monitors backing up of data. MMS also keeps track of hardware metrics during MongoDB deployment. It shows performance on a rich web-based console. It also provides rich custom alerts proactively showing issues in case your MongoDB instance has one.

  5. Despite being scalable, MongoDB also supports fixed-sized collections called capped collections. Capped collections maintain the insertion order, and once the specified size is reached, it starts behaving like a circular queue. To create a capped collection in MongoDB, you can use the db.createCollection and specify the size of the collection, say, for instance, 2 MB.

    db.createCollection(‘logs’,{capped:true, size:2097152)

  6. MongoDB supports field queries, range, and regular expression searches. Queries return specific fields of documents and even user-defined JavaScript functions. It also supports ad hoc services by indexing BSON documents and uses a unique query language to manipulate them.

Closing thoughts

MongoDB is currently the most popular NoSQL database that suits modern development requirements and standards. It offers all the features offered by NoSQL and also additional features not specified by NoSQL. Being schemeless, its ability to be scaled up enables it to be used for large enterprise applications. It offers many inbuilt queries and methods to manipulate and use documents with ease.

Nieuwste