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
Why the paradigm shift matters
📖 Scenario: You are helping a small bookstore switch from a traditional paper catalog to a modern database system using MongoDB. This will help the store manage books and sales more easily and quickly.
🎯 Goal: Build a simple MongoDB collection to store book information, add a configuration for filtering books by price, query the collection to find affordable books, and finalize the setup for easy future updates.
📋 What You'll Learn
Create a MongoDB collection named books with exactly three book documents
Add a variable maxPrice to set the maximum price for affordable books
Write a query to find all books with a price less than or equal to maxPrice
Add an index on the price field to optimize queries
💡 Why This Matters
🌍 Real World
Bookstores and many businesses use databases like MongoDB to store and quickly find information about products, customers, and sales.
💼 Career
Knowing how to create collections, query data, and optimize with indexes is essential for database administrators and developers working with NoSQL databases.
Progress0 / 4 steps
1
DATA SETUP: Create the books collection with three books
Create a MongoDB collection called books and insert exactly these three documents: { title: "The Great Gatsby", author: "F. Scott Fitzgerald", price: 10 }, { title: "1984", author: "George Orwell", price: 15 }, and { title: "To Kill a Mockingbird", author: "Harper Lee", price: 12 }.
MongoDB
Hint
Use db.books.insertMany([...]) with the exact book documents inside the array.
2
CONFIGURATION: Define maxPrice to filter affordable books
Create a variable called maxPrice and set it to 12 to represent the maximum price for affordable books.
MongoDB
Hint
Use const maxPrice = 12 to create the variable.
3
CORE LOGIC: Query books with price less than or equal to maxPrice
Write a MongoDB query using db.books.find() to find all books where the price is less than or equal to the variable maxPrice.
MongoDB
Hint
Use db.books.find({ price: { $lte: maxPrice } }) to get books priced at or below maxPrice.
4
COMPLETION: Add an index on the price field
Create an index on the price field in the books collection using db.books.createIndex() to speed up price queries.
MongoDB
Hint
Use db.books.createIndex({ price: 1 }) to create an ascending index on the price field.
Practice
(1/5)
1. What is the main reason MongoDB represents a paradigm shift compared to traditional databases?
easy
A. It only works with small datasets
B. It uses SQL queries for data retrieval
C. It requires strict schemas for all data
D. It stores data as flexible documents instead of fixed tables
Solution
Step 1: Understand traditional database storage
Traditional databases store data in tables with fixed columns and rows.
Step 2: Compare MongoDB storage model
MongoDB stores data as flexible JSON-like documents, allowing varied fields and structures.
Final Answer:
It stores data as flexible documents instead of fixed tables -> Option D
Quick Check:
Document storage = Paradigm shift [OK]
Hint: Remember: MongoDB uses documents, not tables [OK]
Common Mistakes:
Thinking MongoDB uses SQL queries
Assuming MongoDB requires fixed schemas
Believing MongoDB is only for small data
2. Which of the following is the correct way to insert a document into a MongoDB collection named users?
easy
A. INSERT INTO users VALUES ('Alice', 30)
B. db.users.add({name: 'Alice', age: 30})
C. db.users.insertOne({name: 'Alice', age: 30})
D. insert document into users {name: 'Alice', age: 30}
Solution
Step 1: Recall MongoDB insert syntax
MongoDB uses insertOne() or insertMany() methods on collections.
Step 2: Identify correct syntax
db.users.insertOne({name: 'Alice', age: 30}) correctly inserts one document.
Final Answer:
db.users.insertOne({name: 'Alice', age: 30}) -> Option C
Quick Check:
insertOne() = Correct insert method [OK]
Hint: Use insertOne() to add a single document [OK]
Common Mistakes:
Using SQL INSERT syntax in MongoDB
Using non-existent methods like add()
Writing commands in plain English
3. Given the collection products with documents like {name: 'Pen', price: 1.5}, what will this query return?
db.products.find({price: {$gt: 1}})
medium
A. All products with price greater than 1
B. Syntax error in query
C. All products with price equal to 1
D. All products with price less than 1
Solution
Step 1: Understand the query filter
The filter {price: {$gt: 1}} means price greater than 1.
Step 2: Interpret the query result
The query returns all documents where the price field is more than 1.
Final Answer:
All products with price greater than 1 -> Option A
Quick Check:
$gt means greater than [OK]
Hint: Remember $gt means greater than in MongoDB queries [OK]
Common Mistakes:
Confusing $gt with $lt
Thinking it returns price equal to 1
Assuming syntax error due to $gt
4. Identify the error in this MongoDB query:
db.orders.find({status: 'shipped'}
medium
A. Missing closing parenthesis for find()
B. Incorrect field name 'status'
C. Using single quotes instead of double quotes
D. No error, query is correct
Solution
Step 1: Check query syntax
The query is missing a closing parenthesis after the filter object.
Step 2: Confirm correct syntax
Proper syntax is db.orders.find({status: 'shipped'}) with closing parenthesis.
Final Answer:
Missing closing parenthesis for find() -> Option A
Quick Check:
Parentheses must be balanced [OK]
Hint: Count parentheses to avoid syntax errors [OK]
Common Mistakes:
Ignoring missing parentheses
Thinking quotes cause error
Assuming field name is wrong without checking
5. Why does MongoDB's document model make scaling easier compared to relational databases?
hard
A. Because it only supports vertical scaling
B. Because documents can store nested data, reducing the need for complex joins
C. Because it enforces strict schemas for all data
D. Because it uses SQL for faster queries
Solution
Step 1: Understand document model benefits
MongoDB stores data in nested documents, allowing related data to be stored together.
Step 2: Compare with relational joins
Relational databases require joins across tables, which can slow queries and complicate scaling.
Step 3: Connect to scaling
Storing nested data reduces joins, making horizontal scaling and distributed data easier.
Final Answer:
Because documents can store nested data, reducing the need for complex joins -> Option B