Bird
Raised Fist0
MongoDBquery~5 mins

How MongoDB stores data as documents

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction

MongoDB stores data as documents to keep information organized in a way that is easy to read and flexible to change.

When you want to save information about a person, like name, age, and address, all together.
When you need to store data that can change often, like a shopping cart with different items.
When you want to keep related data in one place without using many tables.
When you want to quickly add new fields without changing the whole database structure.
Syntax
MongoDB
{ <field1>: <value1>, <field2>: <value2>, ... }
Each document is like a record with fields and values.
Documents are stored in collections, similar to tables in other databases.
Examples
A simple document storing a person's name, age, and city.
MongoDB
{ "name": "Alice", "age": 30, "city": "New York" }
A document representing a product with its price and availability.
MongoDB
{ "product": "Book", "price": 12.99, "inStock": true }
A document with an array field to store multiple hobbies.
MongoDB
{ "name": "Bob", "hobbies": ["reading", "hiking", "coding"] }
Sample Program

This example inserts a document into the 'users' collection and then finds it by name.

MongoDB
db.users.insertOne({ "name": "John", "age": 25, "email": "john@example.com" });
db.users.find({ "name": "John" });
OutputSuccess
Important Notes

Documents in MongoDB are stored in a format called BSON, which is like JSON but supports more data types.

Each document has a unique _id field automatically added if not provided.

Summary

MongoDB stores data as flexible documents with fields and values.

Documents are grouped in collections, making data easy to organize.

This format allows quick changes and storing complex data like arrays and nested objects.

Practice

(1/5)
1. What is the basic unit of data storage in MongoDB?
easy
A. A document
B. A table
C. A row
D. A column

Solution

  1. Step 1: Understand MongoDB data structure

    MongoDB stores data as documents, not tables or rows like traditional databases.
  2. Step 2: Identify the correct data unit

    The document is the flexible data unit that holds fields and values in MongoDB.
  3. Final Answer:

    A document -> Option A
  4. Quick Check:

    MongoDB data unit = document [OK]
Hint: Remember: MongoDB uses documents, not tables or rows [OK]
Common Mistakes:
  • Confusing documents with tables from SQL
  • Thinking rows or columns are used in MongoDB
  • Assuming collections are the basic unit
2. Which of the following is the correct way to represent a MongoDB document with a field name and value Alice?
easy
A. [ 'name': 'Alice' ]
B. { 'name' = 'Alice' }
C. { name: 'Alice' }
D. ( name: 'Alice' )

Solution

  1. Step 1: Recall MongoDB document syntax

    MongoDB documents use JSON-like syntax with curly braces and colon to assign values.
  2. Step 2: Check each option's syntax

    { name: 'Alice' } uses correct JSON-like syntax: { name: 'Alice' }. Others use invalid symbols or brackets.
  3. Final Answer:

    { name: 'Alice' } -> Option C
  4. Quick Check:

    Correct MongoDB document = JSON-like with colons [OK]
Hint: Use curly braces and colons for fields in MongoDB documents [OK]
Common Mistakes:
  • Using equal signs instead of colons
  • Using square or round brackets instead of curly braces
  • Putting field names in quotes incorrectly
3. Given the MongoDB document: { name: 'Bob', age: 30, hobbies: ['reading', 'swimming'] }, what is the value of the hobbies field?
medium
A. A string 'reading, swimming'
B. A nested document with keys 'reading' and 'swimming'
C. A number 2
D. An array with 'reading' and 'swimming'

Solution

  1. Step 1: Identify the data type of hobbies field

    The hobbies field is shown with square brackets, which means it is an array.
  2. Step 2: Understand array contents

    The array contains two string elements: 'reading' and 'swimming'.
  3. Final Answer:

    An array with 'reading' and 'swimming' -> Option D
  4. Quick Check:

    Square brackets mean array = An array with 'reading' and 'swimming' [OK]
Hint: Square brackets [] mean array in MongoDB documents [OK]
Common Mistakes:
  • Thinking it's a string instead of an array
  • Confusing arrays with nested documents
  • Assuming the value is a count of items
4. Identify the error in this MongoDB document: { 'title': 'Book', pages: 250, author: 'John Doe' }
medium
A. This document is valid and has no error
B. Mixing quoted and unquoted field names is invalid
C. Values must be numbers only
D. Field names must all be unquoted

Solution

  1. Step 1: Check field name quoting rules

    MongoDB allows field names to be quoted or unquoted as long as they are valid strings.
  2. Step 2: Verify document validity

    Mixing quoted and unquoted field names is allowed; values are correctly typed.
  3. Final Answer:

    This document is valid and has no error -> Option A
  4. Quick Check:

    Quoted or unquoted field names both valid [OK]
Hint: MongoDB allows mixed quoted/unquoted field names [OK]
Common Mistakes:
  • Thinking all field names must be quoted
  • Assuming mixing quotes causes error
  • Believing values must be only numbers
5. You want to store a user's profile with name, age, and a list of addresses (each with street and city) in MongoDB. Which document structure correctly represents this?
hard
A. { name: 'Eva', age: 28, addresses: '1st Ave, NY; 2nd St, LA' }
B. { name: 'Eva', age: 28, addresses: [{ street: '1st Ave', city: 'NY' }, { street: '2nd St', city: 'LA' }] }
C. { name: 'Eva', age: 28, addresses: { street: '1st Ave', city: 'NY' }, { street: '2nd St', city: 'LA' } }
D. [ name: 'Eva', age: 28, addresses: [{ street: '1st Ave', city: 'NY' }] ]

Solution

  1. Step 1: Understand nested documents and arrays

    Addresses is a list (array) of objects (documents), each with street and city fields.
  2. Step 2: Check each option's structure

    { name: 'Eva', age: 28, addresses: [{ street: '1st Ave', city: 'NY' }, { street: '2nd St', city: 'LA' }] } correctly uses an array of documents inside the addresses field. Others use strings, invalid syntax, or wrong brackets.
  3. Final Answer:

    { name: 'Eva', age: 28, addresses: [{ street: '1st Ave', city: 'NY' }, { street: '2nd St', city: 'LA' }] } -> Option B
  4. Quick Check:

    Array of nested documents = { name: 'Eva', age: 28, addresses: [{ street: '1st Ave', city: 'NY' }, { street: '2nd St', city: 'LA' }] } [OK]
Hint: Use array of documents for multiple nested objects [OK]
Common Mistakes:
  • Storing nested data as a plain string
  • Using invalid JSON syntax with multiple objects outside array
  • Using square brackets for entire document instead of curly braces