Skip to main content

MongoDB Introduction

MongoDB Introduction

MongoDB is a popular, open-source document-oriented database designed for scalability and flexibility. Unlike traditional relational databases that store data in rows and tables, MongoDB stores data as JSON-like documents using a format called BSON (Binary JSON). This allows you to represent complex hierarchical data structures easily.

If you are new to JSON, consider reviewing a JSON tutorial to understand how key-value pairs are used to structure data.

In MongoDB, a record is called a document. Each document resembles a JSON object consisting of field-value pairs.


1. MongoDB Documents

MongoDB documents provide a flexible schema by allowing different fields and structures within a single collection. This flexibility supports agile and iterative development without requiring predefined schemas.

{
  title: "Post Title",
  content: "Content of the post.",
  category: "Technology",
  likes: 12,
  tags: ["mongodb", "tutorial"],
  created_at: ISODate("2022-04-10T08:00:00Z")
}

In this example document:

  • title is a string representing the post title.
  • content stores the text content.
  • category classifies the document.
  • likes is a numeric count.
  • tags stores an array of strings.
  • created_at holds a date in ISODate format.

2. Exploring MongoDB with Examples

To query MongoDB documents, you use the find() method on a collection. For instance, to retrieve all documents where the category is "Technology":

db.posts.find({ category: "Technology" })

This query will return all matching documents from the posts collection.


3. SQL vs Document Databases

Feature SQL Databases MongoDB (Document Databases)
Data Model Relational (tables with rows and columns) Document-oriented (JSON-like documents)
Schema Fixed schema requiring predefined tables and columns Schema-less or flexible schema
Joins Supports JOIN operations for related data Denormalizes data by embedding related information in documents; limited JOIN support
Scalability Vertically scalable (scale-up by increasing hardware) Horizontally scalable via sharding (scale-out)

MongoDB is well-suited for applications requiring flexible data models, rapid iterations, and horizontal scaling.


4. Local vs Cloud Database

You can install MongoDB locally on your development machine or server, giving you complete control over setup and operation.

Alternatively, MongoDB Atlas is MongoDB’s fully managed cloud database service that provides effortless scalability, automated backups, monitoring, and easy cluster deployment.

Setting up MongoDB Atlas

  1. Create a free account on MongoDB Atlas.
  2. Launch a free "Shared Cluster" by selecting your preferred cloud provider (AWS, GCP, or Azure) and region.
  3. Configure your cluster's database access by creating database users with appropriate roles.
  4. Add your IP address or a network range to the Network Access whitelist to allow connections.
  5. Obtain the connection string from Atlas to connect your application or MongoDB Shell.

5. Installing MongoDB Shell (mongosh)

mongosh is the official MongoDB Shell, a command-line interface to interact with your database via queries and commands.

To install mongosh:

  • Visit the official download page and follow the instructions for your operating system (Windows, macOS, Linux).

After installation, verify the installation by running:

mongosh --version

To connect to a MongoDB Atlas cluster, use your connection string (replace placeholders accordingly):

mongosh "mongodb+srv://<username>:<password>@cluster0.mongodb.net/myDatabase"

Explore advanced features such as indexing for faster queries, aggregation pipelines for data processing, and integrating MongoDB with backend frameworks like Node.js using official drivers.

Comments