MongoDB - Getting StartedMongoDB - Getting Started1

Understanding Databases, Collections, and Documents in MongoDB



Understanding Databases, Collections, and Documents in MongoDB

MongoDB organizes data in a structure that is different from traditional relational databases. To use MongoDB effectively, it's essential to understand its three core building blocks: databases, collections, and documents.

What is a Database in MongoDB?

A database in MongoDB is a container that holds collections, which in turn contain documents. Each database has its own set of files on the disk and is isolated from other databases.

What is a Collection?

A collection is a group of MongoDB documents, similar to a table in relational databases. However, collections are schema-less, meaning documents inside them can have different fields.

What is a Document?

A document is a single record in MongoDB, stored in BSON (Binary JSON) format. It is similar to a row in an SQL table, but far more flexible — allowing nested objects and arrays.

Example: Creating a Database and Collection

Let’s create a new database and collection using the MongoDB Shell.


    mongo
    

    use school
    db.createCollection("students")
    

Output:

    { "ok" : 1 }
    

Explanation: Here, we switch to a new database called school. If it doesn't exist, MongoDB will create it once we insert data. Then we create a collection called students.

Inserting a Document into the Collection

Now let’s insert a student document into the students collection.


    db.students.insertOne({
      name: "Rahul Sharma",
      age: 20,
      courses: ["Math", "Physics"],
      address: {
        city: "Delhi",
        pincode: 110001
      }
    })
    

Output:

    {
      acknowledged: true,
      insertedId: ObjectId("...")
    }
    

Explanation: This document represents one student. It includes a name, age, an array of courses, and a nested object for address. This flexible schema allows us to store rich, structured data in one place without complex joins.

Question:

Q: Can the next student we insert have a completely different structure?

A: Yes! MongoDB collections do not require all documents to follow the same schema.

Example: Inserting a Different-Shaped Document


    db.students.insertOne({
      name: "Aditi Mehta",
      year: "Final",
      hobbies: ["painting", "reading"]
    })
    

Output:

    {
      acknowledged: true,
      insertedId: ObjectId("...")
    }
    

Explanation: This document doesn't have age, courses, or address fields. That’s perfectly fine in MongoDB.

Viewing All Documents

You can view the inserted documents using find():


    db.students.find().pretty()
    

Output:

    {
      "_id": ObjectId("..."),
      "name": "Rahul Sharma",
      "age": 20,
      "courses": ["Math", "Physics"],
      "address": {
        "city": "Delhi",
        "pincode": 110001
      }
    }
    {
      "_id": ObjectId("..."),
      "name": "Aditi Mehta",
      "year": "Final",
      "hobbies": ["painting", "reading"]
    }
    

Question:

Q: Do we need to define the fields before inserting documents?

A: No. MongoDB allows dynamic documents, so you can insert any structure at any time. This is great for evolving data models.

Summary

MongoDB's structure is highly flexible and intuitive once you grasp these three concepts. In the next topic, we’ll explore MongoDB’s supported data types in more detail.



Welcome to ProgramGuru

Sign up to start your journey with us

Support ProgramGuru.org

Mention your name, and programguru.org in the message. Your name shall be displayed in the sponsers list.

PayPal

UPI

PhonePe QR

MALLIKARJUNA M