It creates an index on a collection to improve the speed of queries by organizing data for faster search.
Click to reveal answer
beginner
How do you create a simple ascending index on the field name using createIndex?
Use db.collection.createIndex({ name: 1 }). The 1 means ascending order.
Click to reveal answer
intermediate
What is the difference between ascending (1) and descending (-1) in createIndex?
Ascending (1) sorts the index from smallest to largest, descending (-1) sorts from largest to smallest. Both speed up queries but order matters for sorting.
Click to reveal answer
intermediate
What option would you use with createIndex to ensure no duplicate values in the indexed field?
Use the option { unique: true } to prevent duplicate values in the indexed field.
Click to reveal answer
intermediate
Can createIndex be used to create compound indexes? If yes, how?
Yes. You pass multiple fields in the object, like { field1: 1, field2: -1 } to create a compound index on both fields.
Click to reveal answer
What is the main purpose of the createIndex method in MongoDB?
ATo create a new collection
BTo speed up query performance
CTo backup the database
DTo delete documents
✗ Incorrect
Indexes help MongoDB find data faster, improving query speed.
Which of the following is the correct syntax to create an ascending index on the field age?
Adb.collection.createIndex('age')
Bdb.collection.createIndex({ age: 'asc' })
Cdb.collection.createIndex({ age: 1 })
Ddb.collection.createIndex({ age: true })
✗ Incorrect
The correct syntax uses 1 for ascending order.
How do you create a unique index on the field email?
Compound indexes speed up queries involving multiple fields.
What does the value -1 mean in createIndex?
ADescending order
BAscending order
CNo order
DUnique index
✗ Incorrect
-1 specifies descending order for the index.
Explain how to create a unique ascending index on the field 'username' in MongoDB.
Think about the syntax: db.collection.createIndex({ field: order }, { unique: true })
You got /4 concepts.
Describe the benefits of using the createIndex method in MongoDB.
Focus on performance and data integrity.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of the createIndex method in MongoDB?
easy
A. To speed up queries by creating an index on a field
B. To delete documents from a collection
C. To update multiple documents at once
D. To create a new collection
Solution
Step 1: Understand what createIndex does
The createIndex method organizes data to make searches faster.
Step 2: Identify the correct purpose
It does not delete or update documents, nor create collections, only speeds up queries.
Final Answer:
To speed up queries by creating an index on a field -> Option A
Quick Check:
createIndex speeds up queries [OK]
Hint: Remember: createIndex speeds up searches, not data changes [OK]
Common Mistakes:
Confusing createIndex with delete or update operations
Thinking createIndex creates collections
Assuming createIndex modifies documents
2. Which of the following is the correct syntax to create an ascending index on the field age in MongoDB?
easy
A. db.collection.createIndex({ age: 1 })
B. db.collection.createIndex(age: 1)
C. db.collection.createIndex({ age: -1 })
D. db.collection.createIndex({ age })
Solution
Step 1: Recall syntax for createIndex
The method requires an object with field names as keys and 1 or -1 as values for ascending or descending.
Step 2: Identify correct ascending index syntax
{ age: 1 } means ascending index on age. Other options are either descending (-1) or invalid syntax.
Final Answer:
db.collection.createIndex({ age: 1 }) -> Option A
Quick Check:
Ascending index uses 1 [OK]
Hint: Use 1 for ascending, -1 for descending in createIndex [OK]
Common Mistakes:
Using -1 for ascending index
Missing curly braces around field and order
Passing field without object braces
3. Given the command db.users.createIndex({ email: 1 }, { unique: true }), what will happen if you try to insert two documents with the same email value?
medium
A. The index will be ignored and duplicates allowed
B. Both documents will be inserted without error
C. The second insert will fail due to duplicate key error
D. MongoDB will automatically update the first document
Solution
Step 1: Understand unique index effect
Unique index prevents duplicate values in the indexed field.
Step 2: Predict behavior on duplicate insert
Inserting a duplicate email will cause an error and reject the second insert.
Final Answer:
The second insert will fail due to duplicate key error -> Option C
Quick Check:
Unique index blocks duplicates [OK]
Hint: Unique index stops duplicate values in that field [OK]
Common Mistakes:
Assuming duplicates are allowed with unique index
Thinking MongoDB auto-updates duplicates
Believing index is ignored on duplicates
4. What is wrong with this command? db.products.createIndex({ price: 'ascending' })
medium
A. The field name must be a string
B. The collection name is missing
C. createIndex cannot be used on numeric fields
D. The index order must be 1 or -1, not 'ascending'
Solution
Step 1: Check index order values
MongoDB requires 1 for ascending or -1 for descending, not strings like 'ascending'.
Step 2: Identify error cause
Using 'ascending' causes syntax error because it's not a valid order value.
Final Answer:
The index order must be 1 or -1, not 'ascending' -> Option D
Quick Check:
Index order must be 1 or -1 [OK]
Hint: Use 1 or -1 for index order, not words [OK]
Common Mistakes:
Using string values instead of 1 or -1
Thinking createIndex can't index numbers
Confusing collection name with index fields
5. You want to create a compound index on lastName (ascending) and age (descending) fields, ensuring no two documents have the same combination. Which command is correct?
Compound index uses an object with multiple fields and their order: 1 for ascending, -1 for descending.
Step 2: Check uniqueness and order
db.collection.createIndex({ lastName: 1, age: -1 }, { unique: true }) matches ascending lastName (1), descending age (-1), and unique true to prevent duplicates.
Step 3: Verify other options
db.collection.createIndex({ lastName: -1, age: 1 }, { unique: false }) reverses order and is not unique; C uses ascending age instead of descending; D uses invalid string values.